如何暂时禁止SSMS中的错误消息?

时间:2011-06-18 00:30:00

标签: sql-server ssms

以下命令尝试重新设置当前数据库中所有表的标识值。

exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT(''?'', RESEED, 1)'

为没有标识列的每个表生成错误消息。

  

Msg 7997,Level 16,State 1,Line 1'MyTable'不包含标识列。

我想抑制上面这一行代码的所有错误消息,但不要为SQL文件中的其余代码禁止它们。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做(未经测试,但我认为你会得到主旨):

declare tbls cursor for
select object_name([object_id])
from sys.identity_columns
where objectproperty([object_id], 'IsMSShipped') = 0
declare @tbl_name sysname, @cmd nvarchar(max)
open tbls

while(1=1)
begin
   fetch next from tbls into @tbl_name
   if(@@fetch_status <> 0)
      break
   set @cmd = 'DBCC CHECKIDENT(''' + @tbl_name + ''', RESEED, 1)'
   exec(@cmd)
end
close tbls
deallocate tbls