Вопрос по sql-server, sql-server-2008 – SQL SERVER 2008 TRIGGER ДЛЯ СОЗДАНИЯ ТАБЛИЦЫ

1

Есть ли способ запустить какую-то функцию, такую как триггер, когда таблица создается в базе данных в SQL SERVER 2008?

Ваш Ответ

2   ответа
5

CREATE TRIGGER имеет образец дляDROP_SYNONYM (очень сомнительный выбор в качестве примера), но вы хотитеCREATE_TABLE событие вместо Лучшая отправная точка в понимании того, как они работают, вероятно, здесь:

http://msdn.microsoft.com/en-us/library/ms190989.aspx

Если у вас есть более конкретные данные, например, что именно вы хотите передать этой функции (я предполагаю, что вы имеете в виду процедуру), или что делает процедура, мы можем предоставить более полезную и конкретную помощь.

Error: User Rate Limit Exceeded themis
4

триггер DDL. Например, вот код, который я написал для предотвращения изменения некоторых таблиц:

PRINT N'Create DDL trigger to prevent changes to various tables'
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER NoEditCertainTables ON DATABASE 
    FOR DROP_TABLE, ALTER_TABLE, CREATE_TABLE
AS 

SET CONCAT_NULL_YIELDS_NULL ON

DECLARE @AffectedTable varchar(255) 
SELECT  @AffectedTable = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(100)') 

--This is the name of the table(s) you dont want messed with
IF (@AffectedTable IN ('Table1','Table2','Table3'))
BEGIN
    ROLLBACK;
END 
SET CONCAT_NULL_YIELDS_NULL OFF      

GO

Похожие вопросы