关闭

数据库表对表操作之复制表数据

标签: sqlserver表表操作数据库
271人阅读 评论(0) 收藏 举报
分类:
数据库表对表操作之复制表数据


个人网站:友书小说网(http://laiyoushu.com)绿色纯净无广告,欢迎大家前来看小说


一:目标表存在:

语法:insert 目标表 select 源表要复制的字段 from 源表
列:INSERT members_123 SELECT id,name,status,intro,position,lv,QQ FROM dbo.members
注:
members_123:目标表
members:数据源表
id,name,status,intro,position,lv...数据源表所有字段
也可以写成这样:INSERT members_123 SELECT * FROM dbo.members
用*代替所有字段,但是这种写法不规范
二:目标表不存在:
语法:select 需要复制的字段名 into 目标表 from 数据源表
列:SELECT * INTO members_1 FROM dbo.members
注:
members_1:目标表
members:数据源表


数据库表对表操作之大数据按需求将所需字段批量插入目标表


语法:insert into 目标表(需插入的所有字段) select (需插入的源字段) from 数据源表
注:
该语句可分为上下两句,分别是:
插  入  目  标  表:insert into 目标表(需插入的所有字段)
从数据源表提取数据:select (需插入的源字段) from 数据源表
写完后可先执行后面那句看能否从数据源表查出所需字段,提取的数据也不一定是完全要从源表提取也可以自己重新set
列:
INSERT INTO dbo.up_budget_item
( key_id ,budget_plan_id ,item_code ,item_desc ,value_source_type ,value_source ,value_methods ,fix_year ,fix_month ,effect_total_type_code ,display_order ,create_by ,create_dt ,last_update_by ,last_update_dt)
SELECT NEWID(),'e7c66dc0-3c7b-48fd-b912-ba6d89523d7a','ys_' + payitem_code,payitem_name_cn,'1001','','1000',NULL,NULL,'1001',display_order,'admin',GETDATE(),NULL,NULL FROM dbo.payitem
注:
newid,'e7c66dc0-3c7b-48fd-b912-ba6d89523d7a','1001'等数据是自己写死了的固定值,而不是从源表中提取的
'ys_' + payitem_code,:是将从原表提取出来的数据进行了拼接操作,批量的将所有从原表提取出来的payitem_code该数据前加了'ys_'






数据集拼接:


关键字:union 或 union all
区别:
union:若两数据集中有两条数据完全一致系统则会只保留一条数据,会自动去重复
union all:就算两数据集中有多条数据重复,系统也会将所有重复的数据保存在合并后的数据集中
列:
UNION ALL:
    SELECT 'a001' AS emp_code , '张三' AS chn_name UNION ALL
   SELECT 'a001' AS emp_code , '张三' AS chn_name
   结果:
 emp_code chn_name
   a001   张三
   a001   张三
UNION:
SELECT 'a001' AS emp_code , '张三' AS chn_name UNION 
        SELECT 'a001' AS emp_code , '张三' AS chn_name
结果:
emp_code chn_name
   a001   张三
注:还可以将拼接的结果集放入到临时表中,操作如下:
SELECT 'ys_ex_001' as payitem_code,'一次性忠诚奖' as payitem_name_cn,63 as display_order INTO #table1 union all 
select 'ys_ex_002' as payitem_code,'长期激励项' as payitem_name_cn,64 as display_order union all 
select 'ys_ex_003' as payitem_code,'短期激励项' as payitem_name_cn,65 as display_order union all 
select 'ys_ex_004' as payitem_code,'经济补偿金' as payitem_name_cn,66 as display_order union all 
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4379次
    • 积分:315
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论