无法在 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) on Windows 10专业版 10.0 以上是关于无法在 SQL Server 中运行 .sql 文件的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 存储过程在查询分析器中执行,但在 C# 中无法正常运行
Blazor WebAssembly FetchData 无法在 SQL Server 上运行