gpt4 book ai didi

c# - SQLCommand ExecuteNonQuery 最大 CommandText 长度?

转载 作者:太空狗 更新时间:2023-10-29 21:39:28 29 4
gpt4 key购买 nike

我在互联网上进行了搜索,所有内容似乎都与个别字段有关或进行一次插入。我有一个迁移工具,可以从旧的遗留数据库 (superbase) 迁移到我们的 SQL Server DB (2008)。目前,我正在从旧数据库中读取 20,000 条记录并生成一个大的 SQLCommand.CommandText 字符串,其中包含 20,000 个由分号分隔的插入语句。 这很好用。但是我可以做25k吗? 3万?我尝试过完全不设置任何限制,但是当我尝试使用包含超过 400 万条 INSERT 语句的 CommandText 运行 ExecuteNonQuery 时,它说的是太长了。我不记得确切的错误消息,抱歉。我找不到任何关于确切限制的文档。找出答案对我来说很重要,因为我一次可以发射的插入物越多,整个过程就越快。非常感谢任何建议/链接/文档,谢谢!

最佳答案

这取决于 SQL Server 版本。

http://technet.microsoft.com/en-us/library/ms143432.aspx

对于 SQL Server 2012,批处理大小或 SQL 语句(字符串)= 65,536 * 网络数据包大小。

网络数据包大小是用于在应用程序和关系数据库引擎之间进行通信的表格数据流 (TDS) 数据包的大小。默认数据包大小为 4 KB,由网络数据包大小配置选项控制。

简而言之,64K x 4K = 256 MB。同样,这假设您使用的是默认数据包大小。

关于c# - SQLCommand ExecuteNonQuery 最大 CommandText 长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390537/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com