我正在使用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