上的唯一衝突我試圖插入到具有唯一約束(ProductType,ProductOwnerid)的表中,當該鍵已經存在時,將不會觸發違反違規行爲。所以我有這個SQL按預期工作:避免在插入SQL SERVER
INSERT INTO dbo.Products (ProductType, ProductOwnerId)
SELECT TOP 1 22, 44 FROM dbo.products prods
WHERE NOT EXISTS (
SELECT prods2.ProductType FROM dbo.products prods2
WHERE prods2.ProductType = 22 AND prods2.ProductOwnerId = 44)
這是不錯的SQL,或者我該如何改進?我不是TOP 1的忠實粉絲,我怎樣才能讓這個更具可讀性/更好的表現?
工作僅用於演示22和44或者在查詢中始終是這兩個人?否則這沒有任何意義。 –
爲什麼你想要一個永遠不會開火的約束。然後刪除它。 –
改爲使用MERGE。 – dnoeth