如何查看不返回结果的查询的效果?
答
通常情况下,只有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
答
我认为,如果你想看到之前和值之后,您需要将它们写在声明自己。您也可以执行多个打印语句来查看发生了什么(您必须创建它们)。
谨慎的一句话 - 如果您使用类似VB/C#的东西来获取结果,请记住任何选择结果将会是从存储过程返回。因此,如果您在更改前进行了选择,进行了更改并再次进行了选择,则新记录将位于第二个表中。
通常,如果我正在更新存储过程中的记录,如果它通常不会返回任何内容,我将返回所有已更改的记录。然后,如果有人调用proc但忽略结果,则不会造成伤害。
'SET NOCOUNT ON;' – vikas 2013-04-10 06:58:03
我不清楚你想获得什么信息。你能举个例子吗? – 2013-04-10 07:02:00
@vikas - 这与我想要做的事情相反。它不起作用 – 2013-04-10 07:02:35