ADO 可能忽略来自 SQL 服务器的错误
ADO possibly ignoring error from SQL Server
这是一些 SQL...
UPDATE table1 SET date = GETDATE() WHERE id = @id
IF @@ROWCOUNT = 0
BEGIN;
THROW 50004, 'Row not updated.', 1;
END
如果我 运行 在 Management Studio 中使用伪造的 ID,我得到...
(0 row(s) affected) Msg 50004, Level 16, State 1, Procedure
MyStoredProcedure, Line 50 Row not updated.
如果我 运行 来自 ASP Classic,Err.Number
为 0 并且连接的错误集合为空。
如果我删除 UPDATE
语句,则会记录错误。
为什么 ADO 在更新后忽略错误?
我在存储过程的开头添加了SET NOCOUNT ON
。
Here,它说...
SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the
client for each statement in a stored procedure.
因此,可能 DONE_IN_PROC
消息导致后续错误被跳过。
这是一些 SQL...
UPDATE table1 SET date = GETDATE() WHERE id = @id
IF @@ROWCOUNT = 0
BEGIN;
THROW 50004, 'Row not updated.', 1;
END
如果我 运行 在 Management Studio 中使用伪造的 ID,我得到...
(0 row(s) affected) Msg 50004, Level 16, State 1, Procedure MyStoredProcedure, Line 50 Row not updated.
如果我 运行 来自 ASP Classic,Err.Number
为 0 并且连接的错误集合为空。
如果我删除 UPDATE
语句,则会记录错误。
为什么 ADO 在更新后忽略错误?
我在存储过程的开头添加了SET NOCOUNT ON
。
Here,它说...
SET NOCOUNT ON prevents the sending of DONE_IN_PROC messages to the client for each statement in a stored procedure.
因此,可能 DONE_IN_PROC
消息导致后续错误被跳过。