我使用RedGate SQL数据比较并生成了一个. SQL文件,这样我就可以在我的本地机器上运行它。但问题是文件超过300mb,这意味着我不能做复制和粘贴,因为剪贴板将无法处理它,当我尝试在SQL Server Management Studio中打开文件时,我得到一个关于文件太大的错误。
有没有办法运行一个大的。sql文件?该文件主要包含两个新表的数据。
我使用RedGate SQL数据比较并生成了一个. SQL文件,这样我就可以在我的本地机器上运行它。但问题是文件超过300mb,这意味着我不能做复制和粘贴,因为剪贴板将无法处理它,当我尝试在SQL Server Management Studio中打开文件时,我得到一个关于文件太大的错误。
有没有办法运行一个大的。sql文件?该文件主要包含两个新表的数据。
当前回答
以管理员权限执行命令提示符 将目录更改为.sql文件的存储位置 执行以下命令 sqlcmd -S '您的服务器名称' -U '服务器的用户名' -P '服务器的密码' -d 'db名称'-i script.sql
其他回答
我有完全相同的问题,一直在斗争了一段时间,最后找到了解决方案,即设置一个参数sqlcmd,以改变它的默认数据包大小:
sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
你的问题和我的问题很相似
您可以将文件/脚本保存为.txt或. Sql,并从Sql Server Management Studio中运行它(我认为菜单是打开/查询,然后在SSMS界面中运行查询)。您可能必须更新第一行,指示要在本地机器上创建或选择的数据库。
如果必须经常进行这种数据传输,那么可以进行复制。根据您的需要,快照复制也可以。如果必须在两台服务器之间同步数据,则可以采用更复杂的模型,如合并复制。
编辑:我没有注意到你与SSMS链接到文件大小的问题。然后,您可以像其他人建议的那样使用命令行,快照复制(在您的主服务器上发布,在您的本地服务器上订阅,复制,然后取消订阅),甚至备份/恢复
我使用MSSQL Express 2014,没有一个解决方案为我工作。它们都让SQL崩溃了。因为我只需要运行带有许多简单插入语句的一次性脚本,所以我通过编写一个小小的控制台应用程序作为最后的手段:
class Program
{
static void Main(string[] args)
{
RunScript();
}
private static void RunScript()
{
My_DataEntities db = new My_DataEntities();
string line;
System.IO.StreamReader file =
new System.IO.StreamReader("c:\\ukpostcodesmssql.sql");
while ((line = file.ReadLine()) != null)
{
db.Database.ExecuteSqlCommand(line);
}
file.Close();
}
}
您也可以使用这个工具。它真的很有用。
BigSqlRunner
注意:断链接,所以已经更新了它。
用osql在命令行运行它,看这里:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL