我一直在尝试插入数据并更新是否有重复。这是我的代码。所有这些领域都是关键。每个都是唯一的,如果有重复,则所有三个字段都是一致的。对于一个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”存在问题。这很可能是格式错误。有人愿意帮我解决这个问题吗?非常感谢你!
答案 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);
答案 1 :(得分:0)
不能将ON DUPLICATE KEY
与SQL Server 2008一起使用。仅限MySql。
请在这里查看:
Does SQL Server Offer Anything Like MySQL's ON DUPLICATE KEY UPDATE