是否有自动/脚本方式来检查数据库中是否存在任何无效触发器?无效含义列类型不匹配等。
答案 0 :(得分:2)
您可以提取和修改触发器的脚本,并在执行ALTER语句时捕获异常。
SELECT ID, Name
, REPLACE(SQL, 'CREATE TRIGGER', 'ALTER TRIGGER')
+ CHAR(13) + CHAR(10) + 'GO' as SQL
FROM
(
SELECT ID,name , SQL = STUFF( (SELECT ' ' + CAST(Text as varchar(max))
FROM sys.Syscomments c
WHERE c.id =s.ID
ORDER BY colid
FOR XML PATH(''), type
).value('.', 'nvarchar(max)')
, 1, 1, '')
FROM sys.sysobjects AS s
WHERE xtype = 'P'
) x