输出结果集时抑制 tempdb 消息
Suppress tempdb message when outputting result set
使用 SQLCMD
,我 运行 一个脚本输出到 STDOUT
然后 gzip 输出。当我查看输出文件时,我看到这条警告消息:
Database name 'tempdb' ignored, referencing object in tempdb.
在我的脚本中,我在脚本开头进行了检查以删除临时 table(如果存在):
IF OBJECT_ID('tempdb..#TheTable') IS NOT NULL
BEGIN
DROP TABLE tempdb..#TheTable
END
但是 - 我也有 SET NOCOUNT ON
,但文件仍然捕获警告消息。
SQLCMD 脚本:
sqlcmd -i TheScript.sql -h-1 -k1 -s"," -W -u | gzip > "C:\TheOutput.gz"
有没有办法抑制这样的消息?
将您的 if 条件更改为以下模式:
IF 0 < OBJECT_ID('tempdb..#TheTable')
DROP TABLE #TheTable
这不应导致任何错误消息。
适用于 SQL Server 2016 及更高版本且没有任何消息的简单干净版本:
drop table if exists #TheTable
使用 SQLCMD
,我 运行 一个脚本输出到 STDOUT
然后 gzip 输出。当我查看输出文件时,我看到这条警告消息:
Database name 'tempdb' ignored, referencing object in tempdb.
在我的脚本中,我在脚本开头进行了检查以删除临时 table(如果存在):
IF OBJECT_ID('tempdb..#TheTable') IS NOT NULL
BEGIN
DROP TABLE tempdb..#TheTable
END
但是 - 我也有 SET NOCOUNT ON
,但文件仍然捕获警告消息。
SQLCMD 脚本:
sqlcmd -i TheScript.sql -h-1 -k1 -s"," -W -u | gzip > "C:\TheOutput.gz"
有没有办法抑制这样的消息?
将您的 if 条件更改为以下模式:
IF 0 < OBJECT_ID('tempdb..#TheTable')
DROP TABLE #TheTable
这不应导致任何错误消息。
适用于 SQL Server 2016 及更高版本且没有任何消息的简单干净版本:
drop table if exists #TheTable