【问题标题】:Unable to run .sql file in SQL Server无法在 SQL Server 中运行 .sql 文件
【发布时间】: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 实现此目的,这是付费服务吗?

标签: sql sql-server mysql-workbench sql-server-migration-assi


【解决方案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 行 '`' 附近的语法不正确。
猜你喜欢
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
相关资源
最近更新 更多