在一些查询计数中填充一对多关系

时间:2013-04-04 16:54:37

标签: sql tsql one-to-many

假设我有一个具有一对多关系的两个表。商店和产品。

我想在一个查询中插入数据(理想)或尽可能少地使用查询。

Straingtforward方法是将shop插入shop表,然后获取最后一条记录的id,并将行插入带有已接收id的products表。不幸的是,这在我的情况下并不好,因为我有高延迟的数据库连接。此外,我限制访问数据库,无法创建存储过程。那么解决方案是什么?

1 个答案:

答案 0 :(得分:1)

我不太确定请求是什么。 要将数据插入2个表,必须使用2个插入SQL。 只有一种方法可以确保这两个插入工作正确是通过使用begin tran / commit / rollback并开始try / begin catch。

begin try
    begin tran
        insert into shop...
        insert into product...

    commit
end try
begin catch
    rollback
end catch

因此,如果发生任何事情,它将回滚,否则,它将提交到表。