34,838
社区成员




--sql2005 通过 DDL触发器同步数据库 结构
--开始演示
CREATE DATABASE DBTEST1
GO
CREATE DATABASE DBTEST2
GO
USE DBTEST1;
GO
CREATE TRIGGER TR_PASS
ON DATABASE
FOR CREATE_TABLE,ALTER_TABLE ,DROP_TABLE
AS
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL=EVENTDATA().value
('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')
EXEC('USE DBTEST2;'+@SQL)
GO
--Test the trigger.
CREATE TABLE TB (Column1 int);
GO
SELECT * FROM DBTEST2.DBO.TB
/*
Column1
-----------
(所影响的行数为 0 行)
*/
--Test the trigger.
ALTER TABLE TB ADD Column2 int;
GO
SELECT * FROM DBTEST2.DBO.TB
/*
Column1 Column2
----------- -----------
(所影响的行数为 0 行)
*/
DROP TABLE TB
GO
SELECT * FROM DBTEST2.DBO.TB
/*
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'DBTEST2.DBO.TB' 无效。
*/
--删除演示
--Drop the trigger.
DROP TRIGGER TR_PASS
ON DATABASE
GO
--
USE MASTER
GO
DROP DATABASE DBTEST2
GO
DROP DATABASE DBTEST1
GO