我有一个问题,当我执行这个存储过程时:
IF NOT EXISTS (SELECT * FROM TBL_M
WHERE TYPE_M = 'reservation'
AND NUM_DESK = @NUMBER_DESK
AND ID_TIME = @ID_TIME)
BEGIN
INSERT INTO TBL_M
VALUES ('reservation', @NUMBER_DESK, @NUM_USER, @ID_TIME)
END
一切正常,唯一的问题是我想知道何时执行插入,何时不执行。
在 C# 中,我使用以下方法
ExecuteNonQuery()
但它总是返回
-1
,您如何识别插入以及何时不插入。
最佳答案
声明一个变量
Declare @ROWCOUNT INT = 0
分配变量
Select @ROWCOUNT = @@ROWCOUNT
就在插入之后(在开始结束内)
return
或 select
(然后你必须使用 ExecuteQuery
而不是 ExecuteNonQuery
),或者有一个输出参数,以获得 @ROWCOUNT
的值.@MickyD 的建议:
SQL 变量
@@ROWCOUNT
保存受最后一条语句影响的行数,在这种情况下,就在执行 Insert
之后.如果执行任何其他操作,该值将不再相同,因此将其分配给本地定义的变量并传回给调用者。
关于c# - 存储过程的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61567299/