如果存在并满足多个条件,如何更新行,否则将其插入SQL Server中

问题描述 投票:0回答:1

[嗨,我正在尝试执行以下在线程here中找到的代码

    UPDATE MyGuests SET lastname='Doe' WHERE id=2
IF ROW_COUNT()=0
    INSERT INTO MyGuests (lastname, id) VALUES ('Doe',2)

问题是我需要做同样的事情,但是要使用SQL Server查询。我的主要思想是,如果新读取的内容具有相同的BoxNo和相同的SSCC和相同的StyleBarcode,则Qty列中的值将以+1的增量进行更新。否则,它将重新插入。我正在考虑制作类似以下代码的代码:

    UPDATE MyTable SET Qty=Qty+1 WHERE BoxNo=1 AND SSCC=15210049000887900 AND StyleBarcode=5210132138457
IF ROW_COUNT()=0
    INSERT INTO MyTable (SSCC,StyleBarcode,Qty) VALUES (15210049000887900,5210132138457,1)

但是我无法实现,因为我在SQL Server中没有类似ROW_COUNT()的东西。

或者我不知道您是否可以用其他方式完成它?

谢谢。MyTabel:MyTestTabel

sql sql-server tsql sql-update sql-insert
1个回答
0
投票

SQL Server实现the merge syntax,这似乎与您的用例有关。

根据定义明确的谓词,此语句使您可以从一个表中的mergeinsert到给定的表中。

您的问题是:

update
© www.soinside.com 2019 - 2024. All rights reserved.