我正在使用SQL Server 2008 R2。我有一个可能在CompanyName列上有重复项的数据源表(I_Vendor)。我想将这些数据导入到一个新表(Vendor)中,但是新表有一个Name列(对应于CompanyName),并且具有唯一的约束条件。自从我完成SQL之后,我已经有一段时间了,但我看到了MERGE函数,看起来它符合法案。我写道:导入数据并忽略SQL Server中的重复项
MERGE Vendor AS T
USING I_Vendor AS S
ON (T.Name = S.CompanyName)
WHEN NOT MATCHED BY TARGET
THEN INSERT(VendorId, Name, ContactName, ContactInfoId)
VALUES(S.Vendor_ID, S.CompanyName, S.ContactName, S.Vendor_ID+10000);
它会产生一个“的UNIQUE KEY约束冲突”,并给出了Vendor.Name唯一约束的名称。有人知道我做错了什么?
如果源表中有两行具有相同的companyName和不同的联系人名称,您需要在Vendor表中使用哪个联系人姓名?类似的其他专栏呢? –
抱歉不清楚。联系人名称并不重要,我只需要获取所有供应商名称的清单(另外我想弄清楚如何使用合并命令)。 – Tod