如何使用SQL批量复制获取插入数据记录的标识
我有一个包含大约 100,000 条记录的 ADO.NET DataTable
。在此表中,有一列 xyID
,其中没有值,因为该列是我的 SQL Server 数据库中自动生成的 IDENTITY
。
我需要检索其他进程生成的 ID。我正在寻找一种方法将此 DataTable
批量复制到 SQL Server 数据库中,并在同一“步骤”中用生成的 ID“填充”我的 DataTable
。
如何使用 SqlBulkCopy
类检索插入表中的记录的标识值?
I have an ADO.NET DataTable
with about 100,000 records. In this table there is a column xyID
which has no values in it, because the column is an auto-generated IDENTITY
in my SQL Server database.
I need to retrieve the generated IDs for other processes. I am looking for a way to bulk copy this DataTable
into the SQL Server database, and within the same "step" to "fill" my DataTable
with the generated IDs.
How can I retrieve the identity values of records inserted into a table using the SqlBulkCopy
class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我目前正在做这样的事情:
请注意,我们的数据设计支持使用版本 ID 过滤所有新对象;我们添加的每一行都将具有相同的版本 ID,并且我们之前已删除数据库中已具有此版本 ID 的所有行。
但是,即使有 10 分钟的窗口,我的选择查询当前也在 ExecuteReader 中超时。所以这不是我们最终的解决方案。
I'm currently doing something like this:
Note that our data design enables filtering for all our new objects by using the version ID; every row we're adding will have the same version id, and we've previously removed any rows in the database that already had this version id.
However, my select query is currently timing out in ExecuteReader, even with that 10-minute window. So this is not our final solution.