2013-11-19 3 views
0

Есть ли способ автоматического/сценария проверки наличия каких-либо недействительных триггеров в базе данных? Недопустимые несоответствия типа столбца столбца и т. Д.Проверить наличие недействительных триггеров

+1

Можете ли вы показать пример несоответствия типа столбца? –

ответ

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 
+0

Это то, что я искал, спасибо. Я добавил небольшие изменения, инструкцию «go» и код для удаления символов , чтобы сделать вывод действительным. –

Смежные вопросы