Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

ProblemForExamSQLQuery16.sql - Solution

Читайте также:
  1. ProblemForExamSQLQuery04.sql - Solution
  2. ProblemForExamSQLQuery09.sql – Solution
  3. ProblemForExamSQLQuery13.sql - Solution
  4. ProblemForExamSQLQuery19.sql – Solution
  5. ProblemForExamSQLQuery20.sql – Solution
  6. ProblemForExamSQLQuery25.sql – Solution

 

-- **********************************************************************

-- Создаем хранимую процедуру удаления всех SQL DML триггеров

-- **********************************************************************

IF OBJECT_ID('dbo.drop_all_SQL_DML_triggers', 'P') IS NOT NULL

DROP PROCEDURE dbo.drop_all_SQL_DML_triggers

GO

CREATE PROCEDURE drop_all_SQL_DML_triggers @cnt int OUTPUT

AS

BEGIN

DECLARE @trigger_name nvarchar(255), @SqlString nvarchar(1000)

SET @cnt = 0

DECLARE trigger_list CURSOR FORWARD_ONLY STATIC FOR

SELECT name FROM sys.objects WHERE type = 'TR'

OPEN trigger_list

FETCH NEXT FROM trigger_list into @trigger_name

WHILE @@FETCH_STATUS = 0

BEGIN

SET @cnt = @cnt+1

SET @SqlString = N'IF OBJECT_ID(N''[dbo].['+@trigger_name+']'', ''TR'') IS NOT NULL DROP TRIGGER [dbo].['+@trigger_name+']'

EXEC (@SqlString)

FETCH NEXT FROM trigger_list into @trigger_name

END

CLOSE trigger_list

DEALLOCATE trigger_list

END

GO

-- **********************************************************************

-- Проверяем хранимую процедуру удаления всех SQL DML триггеров

-- **********************************************************************

DECLARE @cnt int

EXEC drop_all_SQL_DML_triggers @cnt OUTPUT

SELECT @cnt

EXEC drop_all_SQL_DML_triggers @cnt OUTPUT

SELECT @cnt

GO

-----------------

Отредактировать! (вариант 17)

 

USE dbFAS

GO

IF OBJECT_ID (N'drop_all_triggers') IS NOT NULL

DROP PROCEDURE drop_all_triggers

GO

CREATE PROCEDURE drop_all_triggers

AS

 

--DECLARE - При помощи этой инструкции можно объявлять переменные

--курсоров для использования в других инструкциях

DECLARE @sql NVARCHAR(MAX) = '';

DECLARE @name sysname;

 

 

DECLARE LILU CURSOR

FOR

SELECT name FROM sys.triggers;

 

OPEN LILU;

FETCH NEXT FROM LILU INTO @name;

WHILE (@@FETCH_STATUS=0)

BEGIN

SELECT @sql = 'DROP TRIGGER ' + @name + ' ON DATABASE; ';

EXEC (@SQL);

FETCH NEXT FROM LILU INTO @name;

END;

CLOSE LILU;

DEALLOCATE LILU;

 

EXEC drop_all_triggers;

 

CREATE TABLE t(id int)

 

 

Вариант 17

 

Создать и протестировать хранимую процедуру на T-SQL, которая удаляет все SQL DDL триггеры в текущей базе данных. Выходной параметр процедуры возвращает количество удаленных триггеров.

 

USE dbFAS

GO

CREATE TRIGGER [asd]

ON DATABASE

FOR CREATE_TABLE

AS

PRINT 'You must disable Trigger "ddl" to drop trigger!';

--ROLLBACK;

 

GO

 

 

USE dbFAS

GO

IF OBJECT_ID (N'drop_all_triggers') IS NOT NULL

DROP PROCEDURE drop_all_triggers

GO

CREATE PROCEDURE drop_all_triggers

AS

 

--DECLARE - При помощи этой инструкции можно объявлять переменные

--курсоров для использования в других инструкциях

DECLARE @sql NVARCHAR(MAX) = '';

DECLARE @name sysname;

 

 

DECLARE LILU CURSOR

FOR

SELECT name FROM sys.triggers;

 

OPEN LILU;

FETCH NEXT FROM LILU INTO @name;

WHILE (@@FETCH_STATUS=0)

BEGIN

SELECT @sql = 'DROP TRIGGER ' + @name + ' ON DATABASE; ';

EXEC (@SQL);

FETCH NEXT FROM LILU INTO @name;

END;

CLOSE LILU;

DEALLOCATE LILU;

 

EXEC drop_all_triggers;

 

CREATE TABLE t(id int)

 

----------------------------




Дата добавления: 2015-02-16; просмотров: 73 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав