2012-03-21 4 views
4
나는이 같은 DDL 트리거를 만드는거야 2008 년

SQL 서버 : DDL 트리거 제어 테이블 작성

SQL 서버 사용하고

:

CREATE TRIGGER tName ON database FOR CREATE_TABLE 
as 
    print 'A table has been created' 

내가 생성 된 그 테이블을 얻을 수 있습니다 !?

일반 테이블에서 삽입되거나 삭제 된 것과 같은 것이 발생합니다.

+0

내가 알고있다 .. 메시지를 작성 tabel 알 수있는 특별한 이유가? –

+0

나는 "방금 생성 한"테이블 이름을 알고 싶습니다. 그래서 "T-SQL에 의해 동적으로 생성 된"DB에 생성 된 모든 테이블을 추적 할 수 있습니다. – AMTourky

답변

3

이 시도 :

CREATE TRIGGER TRG_TABLES 
ON DATABASE 
AFTER 
    CREATE_TABLE 
AS 
BEGIN 
    SET NOCOUNT ON 

    DECLARE @TABLE_NAME SYSNAME 

    SELECT 
     @TABLE_NAME = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','SYSNAME') 

    ... 


END 
GO