lunes, 7 de mayo de 2018

Deshabilitar o Habilitar todos los triggers de la base de datos sql server

Posted by InfoTacticas Soluciones  |  No comments

A continuación muestro un procedimiento almacenado que permite habilitar o deshabilitar todos los triggers de una base de datos, de acuerdo al parámetro booleano: HABILITAR

--
--

CREATE PROCEDURE [dbo].[PROC_HABILITAR_DESHABILITAR_TRIGGERS_BASE]
@HABILITAR bit = 1
AS

 DECLARE @string VARCHAR(8000)
 DECLARE @NombreTabla NVARCHAR(500)
 DECLARE @NombreEsquema NVARCHAR(500)
 DECLARE @instruccion NVARCHAR(500)
 SET @instruccion = CASE WHEN @HABILITAR = 1 THEN 'ENABLE' ELSE 'DISABLE' END

 DECLARE cur CURSOR
 FOR SELECT DISTINCT  sch.name AS nombre_esquema, ta.name as 'nombre_tabla'
 FROM    sys.objects tr
 INNER JOIN sys.schemas sch ON tr.schema_id = sch.schema_id
 inner join  sys.objects ta on tr.parent_object_id = ta.object_id
 where tr.type = 'TR'
 order by sch.name, ta.name

 
 OPEN cur
 FETCH next FROM cur INTO @NombreEsquema, @NombreTabla 
 WHILE @@fetch_status = 0
 BEGIN
 SET @string ='Alter table '+ @NombreEsquema + '.'+@NombreTabla + ' ' + @instruccion + ' trigger all'
 EXEC (@string)
 FETCH next FROM cur INTO @NombreEsquema, @NombreTabla 
 END
 CLOSE cur
 DEALLOCATE cur 
GO


5/07/2018 01:55:00 p. m. Share:

0 comentarios:

Get updates in your email box
Complete the form below, and we'll send you the best coupons.

Deliver via FeedBurner
back to top