我在SQLserver2005中有两个数据库A,B,我想当A中有a1表时就自动转移到B数据库中,如何实现啊?

解决方案 »

  1.   

    Sql Server2005 Transact-SQL 新兵器学习总结之-DDL触发器
      

  2.   

    可以先看这个
    create TRIGGER safety 
    ON DATABASE 
    FOR CREATE_TABLE 
    AS 
    declare @cmd nvarchar(max)
    set @cmd=EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(max)')
    print @cmd
      

  3.   

    能把语法帮我写出来吗,就写当A中有a1表创建了就转移到B中,怎么定时执行啊?
      

  4.   

    不错,这个修改一下换用EXEC就能达到目的了。
      

  5.   

    先USE 你的库名,把test.dbo的test改的你要复制的库名。
      

  6.   

    USE [mydb]
    GO
    CREATE TRIGGER [safety]  
    ON DATABASE  
    FOR CREATE_TABLE  
    AS  
    declare @cmd nvarchar(max)
    set @cmd=EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(max)')
    set @cmd= left(@cmd,charindex('table',@cmd)+5)+'[test].[dbo].' --把test替换成你复制后的库名
    +parsename(substring(@cmd,charindex('table',@cmd)+5,charindex('(',@cmd)-(charindex('table',@cmd)+5)),1)
    +stuff(@cmd,1,charindex('(',@cmd)-1,'')
    exec(@cmd)
    GO
      

  7.   

    thank you,我去测试一下,这样运行一次以后它就会自动执行了吗