这是我的表
数据库A中的表供应商
ID(AUTONUMBER) | SupplierCode(Unique) | SupplierName
001 supp001 TestA
002 supp002 TestB
003 supp003 TestC
数据库B中的表供应商
ID(AUTONUMBER) | SupplierCode(Unique) | SupplierName
001 supp001 TestA
003 supp003 TestC
在这种情况下,我想将supp002插入数据库B中的表供应商 并且它将跳过supp001和supp003,因为SUPPLIERCODE存在
任何人都可以帮助我解决这个问题
注意:SQL Server查询不是MySQL
答案 0 :(得分:0)
也可以作为答案
insert into databaseB..suppliers
Select * from databaseA..suppliers where id not in (select id from databaseB..suppliers)
表格引用应该是正确的,但我无法验证。如果这是正确的全名
,您可能想要使用databasea.dbo.suppliers答案 1 :(得分:0)
假设两个数据库位于同一服务器上,并且两个表都是“dbo”模式的一部分,则只能将A表中那些尚未存在于B中的记录插入到B表中,可以这样处理:
INSERT INTO DatabaseB.dbo.Suppliers
SELECT ID,SupplierCode, SupplierName FROM DatabaseA.dbo.Suppliers
WHERE SupplierCode NOT IN
(SELECT SupplierCode FROM DatabaseB.dbo.Suppliers)
如果A和B中的表属于不同的模式,请将上面的“dbo”替换为相应的模式名称。
如果数据库驻留在不同的服务器上,本文讨论创建链接服务器可能很有用,但语法类似。 Create Linked Servers
答案 2 :(得分:0)
我通常不建议在语句中使用In或Not,我通常使用连接,所以试试这个
Insert into DatabaseB
(SupplierCode,
SupplierName)
Select SupplierCode,
SupplierName
From DatabaseA A
Left join DatabaseB B
On A.SupplierCode = B.SupplierCode
Where B.SupplierCode IS NULL