一些查询不返回结果,但返回一条消息
命令成功完成
执行后返回。如何找出查询对数据库的影响(如果有)?
通常,只有 DDL 查询才返回
command(s) completed successfully
例如,如果您在 DB 中创建 table/view/sproc/function 或任何其他对象,则只会得到上述语句。
当您执行 DML 时,理想情况下您应该得到
(xxx row(s) affected)
即使使用不满足的 WHERE 子句,您仍然会得到
(0 row(s) affected)
除非,当然,你首先执行
SET NOCOUNT ON
顺便说一句,当它自己执行时会给出
command(s) completed successfully
您为什么不在这里发布您的查询,以便我们知道您在说什么?
拉吉
我认为,如果您想查看值之前和之后的值,您需要自己将它们写入语句中。您还可以执行多个打印语句以查看发生了什么(您必须创建它们。)
提醒一句 - 如果您使用 VB/C# 之类的工具来获取结果,请记住任何选择结果都将从存储的过程中返回。因此,如果您在更改之前进行了选择,进行了更改然后再次进行了选择,则新记录将在第二个表中。
通常,如果我正在对存储过程中的记录进行更新,如果它通常不会返回任何内容,我将返回所有已更改的记录。然后,如果有人调用 proc 但忽略了结果,则不会造成任何伤害。