0

当更新事件发生时,我正在更新一个名为 A 的表,触发器被触发。我的要求是我需要将数据插入另一个表(从 A 到 B),并且该表的值是从虚拟表(已删除和已插入)中获得的。如何设置插入和删除的虚拟表值

扳机

CREATE TRIGGER trgAfterUpdate ON A
FOR UPDATE
AS
BEGIN
Insert into B(col1,col2,col3,col4,col5) values ()  // col1 to 4 inserted values col5 Deleted table value
END
4

2 回答 2

1
Insert B(col1,col2,col3,col4,col5) 
select inserted.col1, inserted.col2, inserted.col3, inserted.col4, deleted.col5
from inserted
     inner join deleted on inserted.IDField = deleted.IDField
于 2013-09-24T12:48:39.023 回答
0

我在同一类型的项目中工作,我必须在一定时间后进行定期更新并将其插入表中,但表中应包含所有唯一值……为了解决这个问题,我做了以下工作。

  1. 拿了两张相似实体的表。

  2. 在其中一个表中,我获取了所有值,然后将其与其他表进行比较以获取重复数据,然后将其删除,然后通过将表从一个表复制到另一个表将其插入到新表中。


SqlCommand cmd2 = new SqlCommand("delete table2 from table2 inner join tabl1 on table1.some entries=table2.on same entry", connection_object);       
cmd2.ExecuteNonQuery();
SqlCommand cmd3 = new SqlCommand("insert into table1 (all values) select all values from table2", connection_object);
cmd3.ExecuteNonQuery();
connection_object.Close();
于 2013-09-24T12:52:05.210 回答