我有两张完全相同的牌桌。我的问题:当我在第一个表中自动插入sql服务器以将此行复制到另一个表时,有什么办法。
我知道我可以手动完成
select * into table1 from table2 where table2ID=@table2ID
但是我想知道我是否可以动态创建表并在插入行时设置它,也将行的数据复制到另一个表中。 因此,通过这种方式,我不需要运行额外的代码来执行此操作,sql将自动执行此操作
答案 0 :(得分:0)
这里使用触发器是合适的。它可能看起来像这样:
CREATE TRIGGER SomeTriggerName ON theSourceTable
FOR INSERT
AS
INSERT INTO DestinationTable
(column1, someothercolumn)
SELECT (column1, someothercolumn)
FROM inserted
答案 1 :(得分:0)
您可以使用TRIGGER
这是一个链接到具有特定操作的表格的对象(INSERT
,UPDATE
,DELETE
或其中的任意组合) 。触发器的代码将在对链接表执行的每个操作上执行。
基本示例:
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