如何导入大型MS SQL.SQL文件?
我使用RedGate SQL数据比较并生成了一个.SQL文件,这样我就可以在本地机器上运行它了。但问题是该文件超过300mb,这意味着我无法进行复制和粘贴,因为剪贴板将无法处理该文件,当我尝试在SQL Server Management Studio中打开该文件时,我会遇到一个错误,即该文件太大如何导入大型MS SQL.SQL文件?,sql,sql-server,import,Sql,Sql Server,Import,我使用RedGate SQL数据比较并生成了一个.SQL文件,这样我就可以在本地机器上运行它了。但问题是该文件超过300mb,这意味着我无法进行复制和粘贴,因为剪贴板将无法处理该文件,当我尝试在SQL Server Management Studio中打开该文件时,我会遇到一个错误,即该文件太大 有没有办法运行一个大的.sql文件?该文件基本上包含两个新表的数据。使用osql在命令行中运行它,请参见此处: 使用osql在命令行中运行它,请参见此处: 从命令提示符启动sqlcmd: sqlcmd
有没有办法运行一个大的.sql文件?该文件基本上包含两个新表的数据。使用osql在命令行中运行它,请参见此处:
使用osql在命令行中运行它,请参见此处:
从命令提示符启动
sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
在命令提示符下,启动
sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
你的问题和我的很相似 您可以将文件/脚本另存为.txt或.sql,并从SQLServerManagementStudio运行它(我认为菜单是Open/Query,然后在SSMS界面中运行查询)。您可能必须更新第一行,指示要在本地计算机上创建或选择的数据库 如果必须经常进行此数据传输,则可以进行复制。根据您的需要,快照复制也可以。如果必须在两台服务器之间同步数据,可以采用更复杂的模型,如合并复制
编辑:我没有注意到您与链接到文件大小的SSM有问题。然后,您可以使用其他人建议的命令行、快照复制(在主服务器上发布、在本地服务器上订阅、复制,然后取消订阅)甚至备份/恢复,您的问题与 您可以将文件/脚本另存为.txt或.sql,并从SQLServerManagementStudio运行它(我认为菜单是Open/Query,然后在SSMS界面中运行查询)。您可能必须更新第一行,指示要在本地计算机上创建或选择的数据库 如果必须经常进行此数据传输,则可以进行复制。根据您的需要,快照复制也可以。如果必须在两台服务器之间同步数据,可以采用更复杂的模型,如合并复制 编辑:我没有注意到您与链接到文件大小的SSM有问题。然后,您可以使用其他人建议的命令行、快照复制(在主服务器上发布、在本地服务器上订阅、复制,然后取消订阅)甚至备份/恢复 该文件基本上包含两个新表的数据 然后,如果两台服务器位于同一网络上,您可能会发现只使用DTS(或SSI,如果这是SQL Server 2005)来传输数据更简单 如果两台服务器不在同一网络上,则可以备份源数据库并将其还原到目标服务器上的新数据库。然后,您可以使用DTS/SSI,甚至在SELECT中插入一个简单的
,将这两个表传输到目标数据库
该文件基本上包含两个新表的数据
然后,如果两台服务器位于同一网络上,您可能会发现只使用DTS(或SSI,如果这是SQL Server 2005)来传输数据更简单
如果两台服务器不在同一网络上,则可以备份源数据库并将其还原到目标服务器上的新数据库。然后,您可以使用DTS/SSI,甚至可以在SELECT中插入一个简单的,将两个表传输到目标数据库。我遇到了完全相同的问题,经过一段时间的努力,终于找到了解决方案,将-a
参数设置为sqlcmd
,以更改其默认数据包大小:
sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
我遇到了完全相同的问题,经过一段时间的努力,终于找到了解决方案,将-a
参数设置为sqlcmd
,以更改其默认数据包大小:
sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
你也可以使用这个工具。它真的很有用
您也可以使用此工具。它真的很有用
以管理员权限获取命令提示符
将目录更改为.sql文件的存储位置
执行以下命令
sqlcmd-S'your server name'-U'服务器用户名'-p'服务器密码'-d'db name'-i script.sql
以管理员权限获取命令提示符
将目录更改为.sql文件的存储位置
执行以下命令
sqlcmd-S'your server name'-U'服务器用户名'-p'服务器密码'-d'db name'-i script.sql
我使用的是MSSQL Express 2014,没有一个解决方案适合我。他们都刚刚崩溃了SQL。因为我只需要运行一个带有许多简单insert语句的一次性脚本,所以作为最后手段,我编写了一个小型控制台应用程序:
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();
}
}
我使用的是MSSQL Express 2014,没有一个解决方案适合我。他们都刚刚崩溃了SQL。因为我只需要运行一个带有许多简单insert语句的一次性脚本,所以作为最后手段,我编写了一个小型控制台应用程序:
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();
}
}
希望这对您有所帮助强>
sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql
sqlcmd-u用户名-s-iu:\\script.sql
希望这对您有所帮助强>
sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql
sqlcmd-u用户名-s-iu:\\script.sql
我也有类似的问题。我的带有sql脚本的文件大小超过150MB(几乎有900k个非常简单的插入)。我使用了Takuro建议的解决方案(作为这个问题的答案),但我仍然收到一条错误消息,说内存不足(“资源池‘内部’中的系统内存不足,无法运行此查询”)
帮助我的是,我在每50k次插入后都会使用GO命令
(它并没有直接解决这个问题(文件大小),但我相信它解决了与sql脚本本身的大容量间接相关的问题