2011-10-19 73 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