2013-04-10 146 views
2

某些查询返回任何结果,但消息如何查看不返回结果的查询的效果?

命令已成功完成它们被执行后

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

+0

'SET NOCOUNT ON;' – vikas 2013-04-10 06:58:03

+2

我不清楚你想获得什么信息。你能举个例子吗? – 2013-04-10 07:02:00

+0

@vikas - 这与我想要做的事情相反。它不起作用 – 2013-04-10 07:02:35

回答

2

通常情况下,只有DDL查询,只是返回

command(s) completed successfully 

例如,如果你创建一个表/视图/存储过程/函数或DB任何其他对象,你只会得到上述声明。

当您要执行DML,那么你就应该理想地得到

(xxx row(s) affected) 

即使有不满意的WHERE子句,你仍然会得到

(0 row(s) affected) 

除非,当然你首先执行

SET NOCOUNT ON 

顺便在执行时自己会给

command(s) completed successfully 

为什么你不只是在这里发布你的查询,所以我们知道你在说什么?

拉吉

+0

是的,我正在制作一个函数。不幸的是,我删除了查询。我想看看这个功能是否按预期工作。 – 2013-04-10 07:51:46

0

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

谨慎的一句话 - 如果您使用类似VB/C#的东西来获取结果,请记住任何选择结果将会是从存储过程返回。因此,如果您在更改前进行了选择,进行了更改并再次进行了选择,则新记录将位于第二个表中。

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