2

一些查询不返回结果,但返回一条消息

命令成功完成

执行后返回。如何找出查询对数据库的影响(如果有)?

4

2 回答 2

2

通常,只有 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

您为什么不在这里发布您的查询,以便我们知道您在说什么?

拉吉

于 2013-04-10T07:49:49.433 回答
0

我认为,如果您想查看值之前和之后的值,您需要自己将它们写入语句中。您还可以执行多个打印语句以查看发生了什么(您必须创建它们。)

提醒一句 - 如果您使用 VB/C# 之类的工具来获取结果,请记住任何选择结果都将从存储的过程中返回。因此,如果您在更改之前进行了选择,进行了更改然后再次进行了选择,则新记录将在第二个表中。

通常,如果我正在对存储过程中的记录进行更新,如果它通常不会返回任何内容,我将返回所有已更改的记录。然后,如果有人调用 proc 但忽略了结果,则不会造成任何伤害。

于 2013-04-10T19:51:57.090 回答