如何在sql中同时将数据插入两个表中

时间:2013-12-11 06:43:00

标签: sql

我有两张桌子,车辆和vehicle_type。我想使用一个表单将相同的数据添加到两个表中。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以使用参数创建存储过程。

在名为2 insert in statement的存储过程中,参数为值。

使用存储过程,您可以进行事务控制 - 如果有任何错误,则回滚两个表的插入。

create procedure insert_into_2_tables
@column1 varchar(50),
@column2 int,
...

as

begin tran

insert into table1 values (@column1, @column2, ...)

insert into table2 values (@column1, @column2, ...)

if @@error <> 0
  rollback tran
else commit tran

- 您可以从表单,代码等中调用此存储过程。

答案 1 :(得分:0)

写两个单独的插入语句,用于将数据插入车辆和车辆类型表中。

答案 2 :(得分:0)

您没有指定DMS,但在Postgres中,您可以使用单个SQL语句执行此操作:

with new_type as (
   insert into vehicle_type values (1, 'big')
   returning id
)
insert into vehicle
values
(1, (select id from new_type), 'super model');

SQLFiddle示例:http://sqlfiddle.com/#!15/9051c/1