1)批插入:
一般批量写入数据,是将一个数据集写入到表中
比如,A表(C1,C2,C3)
全部是int
我想将100,99,98写入到A表的C1,C2,C3字段中,写入3行
执行批插入代码:
insert into A表 select 100,99,98 union all select 100,99,98 union all select 100,99,98
以上代码中:
select 100,99,98 union all select 100,99,98 union all select 100,99,98
是一个结果集:
----------- ----------- -----------
100 99 98
100 99 98
100 99 98
(所影响的行数为 3 行)
执行批插入代码后,一次批插入了3行数据
如果数据是来自一张表,举例说下:
B表(D1,D2,D3)
已有数据3行:
101,102,103
91,92,93
81,82,83
将B表的数据批插入A表:
执行代码:
insert into A表 select * from B表
执行后,3行数据:
101,102,103
91,92,93
81,82,83
被批插入A表
再举个例子,将B表的D1大于90的数据批插入到A表
执行代码:
insert into A表 select * from B表 where D1>90
执行后,2行数据:
101,102,103
91,92,93
被批插入了A表
2)触发器
当A表被批插入数据后,将所有插入的数据也批插入到C表
C表和A表结构相同
触发器代码如下:
create trigger insA
on A表
for insert
as
insert into C表 select * from inserted
解释下代码:
当数据被插入或者批插入到A表后,触发器触发工作,A表的新插入的数据被临时保存在inserted的触发器专用表里,我们将这些数据批插入到C表即是楼主的要求了
温馨提示:答案为网友推荐,仅供参考