在一个查询中插入两个表

问题描述:

如何一次将值插入到两个表中? 如果不成功,两个表都应该回滚。在一个查询中插入两个表

我正在使用SQL Server和查询通过抛出C#代码。

+1

为什么你不能使用两个INSERT语句?除非使用'OUTPUT'子句或触发器,否则'INSERT'语句只能影响单个表。 – 2012-02-14 19:40:30

+0

@H_wardak谢谢,这对我很有帮助。 – Freelancer 2013-04-09 09:34:16

您既可以运行两个查询为一体的声明

insert into table1 (...) values (...); insert into table2 (...) values (...) 

或者写一个触发器,完成第二个插入。

+0

是的,这是真的: insert into table1(...)values(...);插入到table2(...)值(...) 但它应该在一个事务中。因为如果第一次插入失败,第二次插入不应该执行 – 2012-02-15 10:31:31

我通常会编写一个存储过程来获取所有要写出的值,然后调用一系列包含在事务中的INSERT INTO语句。

如果您提供更多信息,例如表格结构和样本数据,我们可以为您提供更多帮助。