当更新事件发生时触发器被触发,我正在更新一个名为A的表。我的要求是我需要将数据插入另一个表(从A到B),并且从虚拟表(已删除和插入)获得该表的值。如何设置插入和删除的虚拟表值
TRIGGER
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
答案 0 :(得分: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
答案 1 :(得分:0)
我在同一类型项目上工作,我必须在一定时间后定期更新并将其插入表格中,但表格应包含所有唯一值...以解决此问题我做了以下。
拿了两张类似实体的表。
在其中一个表中我获取了所有的值,之后我将其与其他表进行比较以获取重复数据,然后将其删除,然后通过将表格复制到另一个表格将其插入到新表中。
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();