无法在 SQL Server 中运行 .sql 文件

Posted

技术标签:

【中文标题】无法在 SQL Server 中运行 .sql 文件【英文标题】:Unable to run .sql file in SQL Server 【发布时间】:2018-12-19 09:03:22 【问题描述】:

我有一个 20 GB 的 .sql 转储文件,我正在尝试使用运行脚本在 mysql 工作台上运行它,成功执行后,使用 SSMA 将数据从 Mysql 工作台迁移到 SQL Server。我已经以这种方式成功迁移了很多次数据,但是对于 20 GB 的文件,这似乎非常耗时。请让我知道是否有任何替代方法可以快速实现这一目标。我点击了以下链接:

Steps to migrate mysql tables to sql server using SSMA!

【问题讨论】:

转储总是耗时,即使您使用它们将数据从一个 MySQL 数据库移动到另一个。它们不是备份,它们是逐行插入的脚本。这是移动数据的最慢方式 @PanagiotisKanavos 你能建议任何替代方式吗? 在前面的评论之上,MySQL 和 SQL Server 之间的语法存在显着差异。我建议将迁​​移分为结构和数据导入。 另外,您可以尝试使用 SSIS 直接从 SQL Server 连接到 MySQL @DylanBrams 谢谢你的建议。您能否分享一些链接或资源以使用 SSIS 实现此目的,这是付费服务吗? 【参考方案1】:

从您的标题 “无法在 SSMS 中运行 .sql 文件”“我有一个 .sql 转储文件 20 GB”您是否要打开 20 GB @ SSMS 中的 987654321@?那永远行不通。 SSMS 是 32 位应用程序,因此最大可寻址内存为 2GB。如果你想运行.sql 文件,我建议使用sqlcmd

打开 Powershell,然后运行以下命令替换相应的部分:

sqlcmd -S Server Name/ServerIP -U Your Login -i Your full path to your script

系统将提示您输入密码,然后运行文件。因此,作为示例,您可以运行:

sqlcmd -S svSQL2017 -U Larnu -i \\svFileServer\SQLShare\Scripts\BigBatchFile.sql

如果您使用集成安全性,则不要为命令传递-U 参数。

编辑:此答案与 OPs 问题无关,因为他们使用“SSMS”作为 SQL Server 的同义词,但事实并非如此。我暂时把这个留在这里,以便 OP 可以查看我的 cmets,我可能会在稍后删除这个答案。

【讨论】:

感谢您的回答没有帮助。此外,我试图保持标题的具体化以及大多数人有兴趣提供解决方案的内容。正文中的详细内容我已经记下来了,我相信是有道理的。 @Wadhawan994 有什么没有帮助的?根据你所拥有的,它似乎是相关的。您永远无法在 SSMS 中打开 20GB 的文件。就像我上面说的,它是一个 32 位应用程序;这与尝试在 32 位版本的 Excel 中打开 20GB 的 csv 文件相同;这些文件对于任何一个应用程序来说都太大了。因此为什么你需要使用sqlcmd 先生,我知道这是一个直接在 SSMS 上运行的大文件,我很确定我运行的是 64 位版本。仅供参考,我将共享结果集:Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 版权所有 (C) 2017 Microsoft Corporation Developer Edition (64-bit) o​​n Windows 10专业版 10.0 (内部版本 17134:)。我也尝试在 Powershell 中使用 cmd,但它没有用,没有帮助:)。 @Wadhawan994 SSMS 和 SQL Server 不是一回事。这就是混乱所在。 SSMS 是 SQL Server Management Studio,是一个与 SQL Server 交互的应用程序。就像 Internet Explorer 不是“互联网”一样,它是与之交互的工具。 SSMS 仅可用作 32 位应用程序,而 SQL Server(数据引擎)可用于 32 位和 64 位(除了 2017 年,仅 64 位)。如果您指的是 SQL Server,请确保您提到的是 SQL Server。当您的意思是数据引擎令人困惑时说明 SSMS,这意味着您会根据错误的信息得到答案。 感谢您提供信息。我知道 SSMS 是 Sql server management studio :P 和 SQL server 和 SSMS 是两个不同的东西。我不知道的是 SSMS 是 32 位的,而 SQL Server (Data Enigne) 是 64 位的。但是,我们不要将讨论转向不同的方向。在执行命令时,我收到错误消息 156,级别 15,状态 1,第 11 行关键字“IF”附近的语法错误。消息 102,级别 15,状态 1,第 11 行 '`' 附近的语法不正确。

以上是关于无法在 SQL Server 中运行 .sql 文件的主要内容,如果未能解决你的问题,请参考以下文章

无法复制 SQL Server 文件,访问被拒绝

SQL Server 存储过程在查询分析器中执行,但在 C# 中无法正常运行

sql server 中怎样执行bat文件

Blazor WebAssembly FetchData 无法在 SQL Server 上运行

IIS无法使用SQL Server身份验证连接到SQL Server

sql server 无法用sql server身份验证