16-05-14, 09:50 AM
السلام عليكم
سكريبت سكول
كيف يكتب برمجيا
USE [AmnDb004]
GO
/****** Object: StoredProcedure [dbo].[prcDisableTriggers] Script Date: 05/16/2014 08:46:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[prcDisableTriggers]
@Tbl [VARCHAR](256),
@bExcludeReplicTriggers [BIT] = 1
AS
DECLARE @Sql [VARCHAR](8000)
IF @bExcludeReplicTriggers = 1
BEGIN
DECLARE
@c CURSOR,
@Tr [VARCHAR](300),
@Id [INT],
@TrRep [VARCHAR](300)
SET @TrRep = 'trg_' + @Tbl + '_replic'
SELECT @Id = [Id] FROM [dbo].[sysobjects] WHERE [Name] = @Tbl
SET @c = CURSOR FAST_FORWARD FOR
SELECT [Name] FROM [dbo].[sysobjects]
WHERE xtype = 'TR' AND [Name] NOT LIKE @TrRep + '%' AND [parent_obj] = @Id
OPEN @c FETCH FROM @c INTO @Tr
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql = 'ALTER TABLE [' + @Tbl + '] DISABLE TRIGGER [' + @Tr + ']'
EXEC (@Sql)
FETCH FROM @c INTO @Tr
END
END ELSE BEGIN
SET @Sql = 'ALTER TABLE [' + @Tbl + '] DISABLE TRIGGER ALL'
EXEC (@Sql)
END
سكريبت سكول
كيف يكتب برمجيا
USE [AmnDb004]
GO
/****** Object: StoredProcedure [dbo].[prcDisableTriggers] Script Date: 05/16/2014 08:46:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[prcDisableTriggers]
@Tbl [VARCHAR](256),
@bExcludeReplicTriggers [BIT] = 1
AS
DECLARE @Sql [VARCHAR](8000)
IF @bExcludeReplicTriggers = 1
BEGIN
DECLARE
@c CURSOR,
@Tr [VARCHAR](300),
@Id [INT],
@TrRep [VARCHAR](300)
SET @TrRep = 'trg_' + @Tbl + '_replic'
SELECT @Id = [Id] FROM [dbo].[sysobjects] WHERE [Name] = @Tbl
SET @c = CURSOR FAST_FORWARD FOR
SELECT [Name] FROM [dbo].[sysobjects]
WHERE xtype = 'TR' AND [Name] NOT LIKE @TrRep + '%' AND [parent_obj] = @Id
OPEN @c FETCH FROM @c INTO @Tr
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Sql = 'ALTER TABLE [' + @Tbl + '] DISABLE TRIGGER [' + @Tr + ']'
EXEC (@Sql)
FETCH FROM @c INTO @Tr
END
END ELSE BEGIN
SET @Sql = 'ALTER TABLE [' + @Tbl + '] DISABLE TRIGGER ALL'
EXEC (@Sql)
END