2011-10-19 72 views
0

我一直在嘗試插入數據並更新(如果有dup)。這是我的代碼。所有這些字段都是鍵。每個都是獨特的,如果有一個dup,所有三個字段都是一致的。一個TrackingNumber只有一個TYPE的NUMBE,等等。更新重複錯誤,需要幫助修復代碼的幾行代碼

string statement = 
    "INSERT INTO SOP10107 VALUES(@SOPNUMBE, @SOPTYPE, @Tracking_Number) 
    ON DUPLICATE KEY 
     UPDATE(@SOPNUMBE = SOPNUMBE + 1, 
       @SOTYPE = SOTYPE + 1, 
       @Tracking_Number = Tracking_Number + 1)"; 

由於我是新的,林不知道這是否是正確的(或任何接近正確的),我認爲基本格式是正確的,但具體的語法和措詞我有一些麻煩。錯誤將會回來,並說「ON」有問題。這很可能是格式錯誤。任何人都在意幫助我解決問題或者解決問題?提前感謝你!

回答

2

您可以使用新的MERGE語句在SQL 2008

MERGE INTO SOP10107 B 
USING (
    SELECT sopnumbe,sotype,tracking_Number FROM SOP10107) E 
ON (B.tracking_number = E.tracking_number) 
WHEN MATCHED THEN 
    UPDATE SET B.SOPnumbe = B.Sopnumber +1, 
     B.sotype = B.Sotype +1, 
     B.tracking_number = B.tracking_number +1 
WHEN NOT MATCHED THEN 
    INSERT (sopnumbe,sotype,tracking_Number) 
    VALUES (@SOPNUMBE, @SOPTYPE, @Tracking_Number); 

MERGE Command in SQL

+0

嘿Sparky的,我很欣賞你的時間幫助我。這對我的項目非常有幫助!非常感謝。如果您有好奇心,我會在第二天通知您是否有任何問題!再次感謝! – javasocute

+0

喜歡MERGE – n8wrl