从sql自动克隆Sql表

时间:2018-04-13 05:32:40

标签: sql-server sql-server-2008

我有两张完全相同的牌桌。我的问题:当我在第一个表中自动插入sql服务器以将此行复制到另一个表时,有什么办法。

我知道我可以手动完成

select * into table1 from table2 where table2ID=@table2ID

但是我想知道我是否可以动态创建表并在插入行时设置它,也将行的数据复制到另一个表中。 因此,通过这种方式,我不需要运行额外的代码来执行此操作,sql将自动执行此操作

2 个答案:

答案 0 :(得分:0)

这里使用触发器是合适的。它可能看起来像这样:

CREATE TRIGGER SomeTriggerName ON theSourceTable
FOR INSERT
AS
INSERT INTO DestinationTable
    (column1, someothercolumn)
SELECT (column1, someothercolumn)
FROM inserted

答案 1 :(得分:0)

您可以使用TRIGGER这是一个链接到具有特定操作的表格的对象(INSERTUPDATEDELETE或其中的任意组合) 。触发器的代码将在对链接表执行的每个操作上执行。

基本示例:

CREATE TRIGGER dbo.CopyToTable2 ON Table1
    AFTER INSERT -- The trigger will execute after any insert done to Table1
AS
BEGIN

    SET NOCOUNT ON

    INSERT INTO Table2 (
        Column1,
        -- OtherColumns
        )
    SELECT
        I.Column1
        -- OtherColumns
    FROM
        inserted AS I -- "inserted" is a special table that references the trigger's tracking table for new or updated records

END