【问题标题】:Bulk Insert multiple records and get identity for all using ADO.NET使用 ADO.NET 批量插入多条记录并获取所有人的身份
【发布时间】:2011-02-11 10:56:36
【问题描述】:

我想使用 ADO.NET 命令/sqldataadapter 在 sql server 数据库中批量插入多条记录,并在一次数据库行程中为所有行生成标识值。

我有什么选择?

【问题讨论】:

    标签: asp.net sql sql-server database ado.net


    【解决方案1】:

    如果您使用其中任何一个,SQL Server 2005 和 2008 将添加对 OUTPUT 子句的支持,这使您能够从 UPDATE/INSERT/DELETE 语句返回结果集。

    【讨论】:

    • 有没有办法在 OUTPUT 子句中包含插入中未使用但与输入源数据位于同一行的列?
    • @Art - 不直接;对于INSERT 语句,OUTPUT 是根据插入的数据构建的。您必须将OUTPUT 数据收集到一个临时表中并将其重新加入输入源
    • @EdHarper 如果您要这样做,除了序号行位置之外,您如何加入原始表? ID 是一个身份,虽然您可以输出它,但您的原始源数据没有此值。我看了看,似乎 SQL Server 2008+ 支持 MERGE,这将允许您输出插入中未引用的列——但是 SQL 2005 解决方案呢?只是在寻找想法......
    • @Art - 您最好提出一个新问题,其中包含您的数据的一些详细信息以及您想要实现的目标。
    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 2011-02-20
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2017-07-23
    相关资源
    最近更新 更多