如果我在SQL查询分析器中运行一个简单查询,例如:
SELECT * FROM TableName
“消息”窗格始终会生成如下消息:
(30 row(s) affected)
如果我运行带有许多语句的存储过程,则这些消息是无用的,因为没有任何指示与每个语句相关的信息。
首先:有没有办法在每个查询的基础上自定义默认邮件?
E.g。我想要一个特定的查询来生成如下消息:
TableName query produced [numRowsAffected] results.
将[numRowsAffected]替换为默认消息中出现的数字。
其次,有没有办法在每个查询的基础上抑制默认消息?
E.g。我有一个TABLE类型的局部变量,在几个语句中使用。
我不希望在重新使用它之前我只是从该变量中删除数据的语句中出现任何消息。
我正在寻找适用于SQL Server 8.0的解决方案。
答案 0 :(得分:2)
您可以使用SET NOCOUNT ON来取消返回的行计数。只需将它放在存储过程的顶部即可。
至于返回自定义消息,如果你真的需要它,你需要自己从sproc中手动打印出来:
e.g。示例
SET NOCOUNT ON
SELECT TOP 5 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
PRINT 'MyExampleQuery produced ' + CAST(@@RowCount AS VARCHAR(20)) + ' results'