insert into t2 select * from t1 left join t2 on t1.关联字段=t2.关联字段 where t2.关联字段 is null
2008的话 用新的操作符Merge 如果是2005或者以前 就用exists方法
如果是MSSQL2008及以上版本,可以使用Merge语句: merge into t2 a using t1 b on a.col1=b.col1 when not matched then --当目标表中没有来源表的记录的时候,就添加 insert (col1,col2,col3,col4,...) values (b.col1,b.col2,b.col3,b.col4,...)Merge语句优缺点: 优点:不需要访问数据多次,而且作为原子操作进行处理的,不用显示声明事务。 缺点:按照完整方式记录日志。
insert t2
select * from t1 b
where not exists(select 1 from t2 a where a.col1=b.col1
and a.col2=b.col2.......)
select * from t1 left join t2 on t1.关联字段=t2.关联字段
where t2.关联字段 is null
如果是2005或者以前
就用exists方法
merge into t2 a
using t1 b
on a.col1=b.col1
when not matched then --当目标表中没有来源表的记录的时候,就添加
insert (col1,col2,col3,col4,...)
values (b.col1,b.col2,b.col3,b.col4,...)Merge语句优缺点:
优点:不需要访问数据多次,而且作为原子操作进行处理的,不用显示声明事务。
缺点:按照完整方式记录日志。
谢谢各位!