insert into B
select * from A where not exists (select 1 from B where B.col=A.col)
--插入A-B的数据
--覆盖数据
update B
set 字段1=A.字段1,字段2=A.字段2
from A
where B.主键=A.主键
select * from A where not exists (select 1 from B where B.col=A.col)
--插入A-B的数据
--覆盖数据
update B
set 字段1=A.字段1,字段2=A.字段2
from A
where B.主键=A.主键
解决方案 »
- 关于聚集索引唯一的问题
- 特殊的表关联查询
- 数据库性能指标有哪些?
- 问题没完没了...天.(查询分析器的解释又不说清楚)过程需要参数 '@parameters' 为 'ntext/nchar/nvarchar' 类型
- sql server 2005 数据库导入导出问题.........高手请进!!!
- 一个存储过程的问题
- 什么地方有check约束的教程?好象很象正则表达式~
- t_sql语句触发器问题
- 求助sql2005关于行转列 PIVOT的另一个用法
- 问题解决了,谢谢大力,运行时候有几处运算是报错,麻烦大力和各位高手看看。
- WinXP下有没有办法安装上SQLServer2000的MSDE?
- 多表查询
如果又要a全部导入b。又要覆盖b的相同id的数据呢?
delete from b
where col in (select col from a)insert into B
select * from A
as
declare @a int,@b varchar(10)... --有多少列就定义多少变量
declare @a1 int
select @a1=id from table1 --将最后一条值主键赋给@a1
select @a=0
... --对它们赋初始值吧
declare cur cursor for select * from table2
open cur
fetch next from cur into @a,@b,...-- 一定要完全
while @@fetch_status=0
begin
set @a=@a+@a1
insert into table1 values(@a,''+@b+'',...) --完全
fetch next from cur into @a,@b,...
end
close cur
deallocate curgo最笨的方法,楼主试一下吧!