USE master GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[uspEvoFindDisabledObjects]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[uspEvoFindDisabledObjects] GO CREATE PROCEDURE [dbo].[uspEvoFindDisabledObjects] AS exec sp_msforeachdb ' use [?] if exists( SELECT ''?'' as DatabaseName, T.[Name] as TableName, TR.[Name] as TriggerName, ''Trigger'' as ObjectType, CASE WHEN 1=OBJECTPROPERTY(TR.[id], ''ExecIsTriggerDisabled'') THEN ''Disabled'' ELSE ''Enabled'' END Status FROM [?]..sysobjects T JOIN [?]..sysobjects TR on t.[ID] = TR.parent_obj WHERE (T.xtype = ''U'' or T.XType = ''V'') AND (TR.xtype = ''TR'' ) and OBJECTPROPERTY(TR.[id], ''ExecIsTriggerDisabled'') = 1 union SELECT ''?'' as DatabaseName, T.[Name] as TableName, TR.[Name] as ConstraintName, ''Constraint'' as ObjectType, CASE WHEN 1=OBJECTPROPERTY(TR.[id], ''CnstIsDisabled'') THEN ''Disabled'' ELSE ''Enabled'' END Status FROM [?]..sysobjects T JOIN [?]..sysobjects TR on t.[ID] = TR.parent_obj WHERE (T.xtype = ''U'' or T.XType = ''V'') AND (TR.xtype = ''F'') and OBJECTPROPERTY(TR.[id], ''CnstIsDisabled'') = 1) begin SELECT ''?'' as DatabaseName, T.[Name] as TableName, TR.[Name] as TriggerName, ''Trigger'' as ObjectType, CASE WHEN 1=OBJECTPROPERTY(TR.[id], ''ExecIsTriggerDisabled'') THEN ''Disabled'' ELSE ''Enabled'' END Status FROM [?]..sysobjects T JOIN [?]..sysobjects TR on t.[ID] = TR.parent_obj WHERE (T.xtype = ''U'' or T.XType = ''V'') AND (TR.xtype = ''TR'' ) and OBJECTPROPERTY(TR.[id], ''ExecIsTriggerDisabled'') = 1 union SELECT ''?'' as DatabaseName, T.[Name] as TableName, TR.[Name] as ConstraintName, ''Constraint'' as ObjectType, CASE WHEN 1=OBJECTPROPERTY(TR.[id], ''CnstIsDisabled'') THEN ''Disabled'' ELSE ''Enabled'' END Status FROM [?]..sysobjects T JOIN [?]..sysobjects TR on t.[ID] = TR.parent_obj WHERE (T.xtype = ''U'' or T.XType = ''V'') AND (TR.xtype = ''F'') and OBJECTPROPERTY(TR.[id], ''CnstIsDisabled'') = 1 end ' GO