在SQL上抑制消息208

时间:2013-07-03 12:49:15

标签: sql sql-server

我正在使用查询从服务器上的所有数据库中获取特定结果(来自where子句):

  sp_msforeachdb  'select * from [?].dbo.[table] where field=''666'''

我有大约10个包含此表的数据库我正在搜索...但是当我使用此查询时,它还会查看tempdbmaster和其他不包含此表的数据库。

所以它将返回:

  

Msg 208,Level 16,State 1,Line 1   
无效的对象名称'master.dbo.table。

我想压制此消息...我尝试set nocount@@error > 0gotoansi_warnings

1 个答案:

答案 0 :(得分:3)

sp_msforeachdb可以采用准备好的声明,其中您可以使用if条款等。谷歌的第一个打击发现了这个:

http://www.codeproject.com/Articles/459536/SQL-Server-Applying-Filter-on-sp_MSforeachDB

EXEC sp_MSforeachdb 'IF ''?''  NOT IN (''tempDB'',''model'',''msdb'')
BEGIN
       SELECT name,physical_name,state,size
       FROM ?.sys.database_files
END'
相关问题