34,575
社区成员
发帖
与我相关
我的任务
分享
INSERT INTO Pro_TOne.dbo.Rs_Userinfo([userid],[username],
[useraddrs],[areaid],[areaname])
select [userusid],[UserName],[UserAddress],[Areaid],
[AreaName] from WMIS.dbo.Rs_Userinfo AS WMIS WHERE
NOT EXISTS(Select 1 from
Pro_TOne.dbo.Rs_Userinfo AS
Pro_TOne where WMIS.username=Pro_TOne.username and WMIS.useraddrs=useraddrs
and WMIS.areaid=areaid and WMIS.areaname=areaname)
INSERT INTO Pro_TOne.dbo.Rs_Userinfo([userid],[username],
[useraddrs],[areaid],[areaname])
select [userusid],[UserName],[UserAddress],[Areaid],
[AreaName] from WMIS.dbo.Rs_Userinfo AS WMIS WHERE
NOT EXISTS(Select 1 from
Pro_TOne.dbo.Rs_Userinfo AS
Pro_TOne where WMIS.UserusID=Pro_TOne.id)
上面语句不方便看....再发一个
INSERT INTO Pro_TOne.dbo.Rs_Userinfo([userid],[username],[useraddrs],[areaid],[areaname]) select [userusid],
[UserName],[UserAddress],[Areaid],[AreaName] from WMIS.dbo.Rs_Userinfo AS WMIS WHERE NOT EXISTS(Select 1 from
Pro_TOne.dbo.Rs_Userinfo AS Pro_TOne where WMIS.UserusID=Pro_TOne.id)
果然是这样,上面是我的语句,可是,还有一个问题.比如:我已经从WMIS表中写入了前100条,执行这语句的时候,前100条从第101到200是一样的,也就是说没有覆盖掉,有没有方法可以让重复的数据合并或是覆盖呢?
另外,NOT EXISTS(Select 1..)这个1是不是就是从第一行开始的意思?INSERT INTO B(字段1,字段2) SELECT 字段1,字段2 FROM A
--情况1,写入B库的表,但不重复,也就是说b库的表中已经有数据:
INSERT INTO b.dbo.表名(列名....)
SELECT 列名...--这里的列名要更上面insert 的一一对应
FROM a库.dbo.表名 AS a
WHERE NOT EXISTS (SELECT 1 FROM b.dbo.表名 AS b WHERE a.主键=b.主键)
--情况2,B库的表没有数据,可以直接插入:
INSERT INTO b.dbo.表名(列名....)
SELECT 列名...--这里的列名要更上面insert 的一一对应
FROM a库.dbo.表名
--这里最主要的问题就是你select的那些列要和insert时的列一一对应
insert into TA(A,B,C)
select 1,2,3
From TB
INSERT into Pro_TOne.dbo.Rs_Userinfo([username],[useraddrs],[areaid],[areaname],[userid]) select top 100 [UserName],[UserAddress],[AreaID],[AreaName],[userusid] from WMIS.dbo.Rs_Userinfo