2

我正在开发一个将数据从 Access 导入 SQL Server 2008 的应用程序。目前,我正在使用存储过程按记录单独导入数据。我不能使用批量插入或类似的东西,因为数据被插入到两个相关的表中......我有一堆字段进入 Account 表(名字、姓氏等)和三个字段每个保险表中都有一条记录,通过在存储过程中使用 SCOPE_IDENTITY 选择的自动递增 AccountID 链接回 Account 表。

由于从应用程序到数据库的往返次数,性能不是很好。出于这个和其他一些原因,我计划改用临时表并从那里导入数据。阅读我的选项来解决这个问题,对临时表中的数据执行相同的插入存储过程的游标是有意义的。然而,游标似乎是邪恶的化身,应该避免。

有没有办法在基于集合的操作中将数据插入一个表,检索自动生成的 ID,然后使用相应的 ID 将相同记录的数据插入另一个表?或者光标是我唯一的选择吗?

4

2 回答 2

3

查看 OUTPUT 子句。您应该能够将其添加到您的 INSERT 语句中以执行您想要的操作。

顺便说一句,如果您需要将未插入到第一个表中的列输出到第二个表中,则使用 MERGE 而不是 INSERT (如对原始问题的评论中所建议),因为它的 OUTPUT 子句支持从源引用其他列表。否则,将其与 INSERT 一起保存更简单,并且它确实使您可以访问插入的标识列。

于 2011-10-20T23:31:33.967 回答
1

我正在尝试使用数据绑定将多条记录插入相关表中。所以,试试这个!

希望这很有帮助。按照此链接如何将记录插入相关表。了解更多信息。

于 2012-05-08T06:15:58.940 回答