更新重复错误,需要帮助修复几行代码

时间:2011-10-19 15:42:32

标签: c# asp.net sql sql-server-2008 visual-studio

我一直在尝试插入数据并更新是否有重复。这是我的代码。所有这些领域都是关键。每个都是唯一的,如果有重复,则所有三个字段都是一致的。对于一个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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

不能将ON DUPLICATE KEY与SQL Server 2008一起使用。仅限MySql。

请在这里查看:

Does SQL Server Offer Anything Like MySQL's ON DUPLICATE KEY UPDATE