首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL server的.SQL文件或变量的最大大小?

问SQL server的.SQL文件或变量的最大大小?
EN

Stack Overflow用户
提问于 2013-11-17 16:24:28
回答 9查看 18.3K关注 0票数 11

我有一个大约20MB的SQL文件/SQL字符串。SQL server根本无法接受此文件。对用于查询或向SQL server插入数据的.SQL文件或变量的最大大小是否有限制?

当我说变量时,它意味着通过某种编程语言或甚至ETL工具将变量传递给SQL server。

EN

回答 9

Stack Overflow用户

发布于 2016-06-15 07:16:29

您可以使用SQLCMD,但我刚刚使用该命令行工具遇到了2 2GB的文件大小限制。这是即使我在每一条语句之后都要进行一次尝试。一旦超过2 2GB的边界,我就会得到一个不正确的语法错误。

经过一番搜索,我找到了这个链接:https://connect.microsoft.com/SQLServer/feedback/details/272757/sqlcmd-exe-should-not-have-a-limit-to-the-size-of-file-it-will-process

上面的链接页面说2 2GB之后的每个字符都会被忽略。这可以解释我的错误语法错误。

票数 9
EN

Stack Overflow用户

发布于 2014-01-10 07:59:30

是的,我以前见过这种情况。.sql文件没有大小限制。它更多地是关于从.sql文件中执行哪种逻辑。如果您有大量的快速插入到一个小表中,例如: INSERT into myTable (column1) VALUES(1),那么您可以在一个.sql文件中运行数千个这样的值,而如果您在插入/删除之外还应用了繁重的逻辑,那么您就会遇到这些问题。文件的大小并不像文件中的内容那么重要。

当我们在过去遇到这些问题时,我们从SQLCMD运行.sql文件。这很容易做到。您还可以在C#或vb中创建一个流阅读器,以读取.sql文件并构建要执行的查询。

SQLCMD: SQLCMD -S [Servername] -E -i [SQL Script]

这够清楚了吗?如果你发布一个你正在尝试做的例子,那么我可以为你写一些示例代码。

当我第一次遇到这个问题时,我找到的唯一解决方案是将.sql文件拆分成更小的文件。这对我们的解决方案不起作用,但SQLCMD起作用了。后来,我们实现了一个实用程序来读取这些大文件,并使用一些快速的c#编程和streamreader执行它们。

票数 5
EN

Stack Overflow用户

发布于 2014-01-13 18:38:10

SQL文件的大小应受PC/工作站上可用内存的限制。但是,如果您不想使用osql和/或第三方工具,在SSMS中有一个解决方案。它被称为SQLCMD模式,它允许您通过引用文件来运行文件,而不是真正在编辑器中打开它。

基本上,你要做的就是:

在

  • 菜单中,选择SQLCMD Mode

  • Look up
  1. to your Query script (大型SQL文件)
  2. 打开一个New Query (或使用现有的文件),然后在新的一行中编写以下代码

:r D:\PathToMyLargeFile\MyLargeFile.sql

  • Run

(调用)脚本

如果需要在被调用的脚本中使用变量,则必须在调用脚本中声明它。那么你的调用脚本应该是这样的:

代码语言:javascript
复制
:setvar myVariable "My variable content"
:r D:\PathToMyLargeFile\MyLargeFile.sql

假设您调用的脚本使用变量表示应该插入到行中的内容。那么它应该是这样的.

代码语言:javascript
复制
INSERT INTO MyTable (MyColumn)
SELECT '$(myVariable)'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20028713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档