更新重复错误,需要帮助修复几行代码
本文关键字:几行 代码 帮助 错误 更新 | 更新日期: 2023-09-27 18:11:37
我一直在尝试插入数据并在有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"有问题。很可能是格式错误。有人愿意帮我解决这个问题吗?提前谢谢你!
可以在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);
SQL中的MERGE命令
不能在SQL Server 2008中使用ON DUPLICATE KEY
。只有MySql。
请查看此处:
SQL Server提供类似MySQL's ON DUPLICATE KEY UPDATE