我使用RedGate SQL数据比较并生成了一个. SQL文件,这样我就可以在我的本地机器上运行它。但问题是文件超过300mb,这意味着我不能做复制和粘贴,因为剪贴板将无法处理它,当我尝试在SQL Server Management Studio中打开文件时,我得到一个关于文件太大的错误。

有没有办法运行一个大的。sql文件?该文件主要包含两个新表的数据。


当前回答

运行脚本文件

打开命令提示窗口。

在命令提示符窗口中输入:sqlcmd -S <ServerName\InstanceName> -i C:\yourScript.sql

按回车。

其他回答

以管理员权限执行命令提示符 将目录更改为.sql文件的存储位置 执行以下命令 sqlcmd -S '您的服务器名称' -U '服务器的用户名' -P '服务器的密码' -d 'db名称'-i script.sql

您也可以使用这个工具。它真的很有用。

BigSqlRunner

注意:断链接,所以已经更新了它。

我有完全相同的问题,一直在斗争了一段时间,最后找到了解决方案,即设置一个参数sqlcmd,以改变它的默认数据包大小:

sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767

该文件主要包含两个新表的数据。

然后,您可能会发现,如果两台服务器在同一网络上,那么仅通过DTS(或SSIS,如果这是SQL Server 2005+)传输数据会更简单。

如果两台服务器不在同一网络上,则可以备份源数据库并将其恢复到目标服务器上的新数据库。然后可以使用DTS/SSIS,甚至简单的INSERT INTO SELECT,将这两个表传输到目标数据库。

对于所有仍然遇到导入大型SQL转储问题的人来说,可能还有另一种方法。

在可能的情况下还需要考虑什么:如果您可以访问服务器,您可以将数据库分成多个部分导出,比如首先导出结构,然后按表(或相关对象)导出更小的数据块,而不是一个大文件。

当您无法访问服务器和/或必须使用现有的大文件时,您可以尝试使用SQLDumpSplitter: https://philiplb.de/sqldumpsplitter3/将它们拆分为多个部分。

然后导入这些片段以获得数据库的完整副本。

祝你们好运。