问答中心分类: SQL如何导入大型MS SQL.SQL文件?
0
匿名用户 提问 14分钟 前

我使用RedGate SQL数据比较并生成了一个.SQL文件,所以我可以在本地机器上运行它。但问题是文件超过300mb,这意味着我无法进行复制和粘贴,因为剪贴板无法处理它,当我尝试在SQL Server Management Studio中打开文件时,我收到一个错误,即文件太大。
有没有办法运行一个大的.sql文件?该文件基本上包含两个新表的数据。

12 Answers
0
Takuro 回答 14分钟 前

我也遇到了同样的问题,经过一段时间的努力,终于找到了解决办法,那就是-a参数sqlcmd为了更改其默认数据包大小:

sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
Shaakir 回复 14分钟 前

+1用于在示例中添加-d选项。我在sql文件中使用了“USE[DBNAME]”。这也奏效了。不确定哪种方法更好或更可取

Hriju 回复 14分钟 前

谢谢我使用以下命令作为连接数据库所需的用户名和密码。sqlcmd -S <Servername> -U <Username> -P <password> -d <Databasename> -i <filename>

The incredible Jan 回复 14分钟 前

您通过设置数据包大小解决了哪个问题?微软表示:“更大的数据包大小可以提高性能…”(docs.microsoft.com/en-us/sql/tools/sqlcmd-utility)

JumpingJezza 回复 14分钟 前

@TheincredibleJan我认为他指的是:stackoverflow.com/q/55881713/345659

0
Yigit Yuksel 回答 14分钟 前

你也可以使用这个工具。这真的很有用。
BigSqlRunner
注意:链接断了,所以我们更新了它。

Martijn 回复 14分钟 前

我认为它也很有用,直到我用一个400 MB的SQL文件(满是INSERT语句)运行它。运行9小时后,数据库中没有添加任何内容,但BigSqlRunner消耗了3 GB到6 GB的内存。

Barry 回复 14分钟 前

非常有用。通常我手动将文件(各种工具)分割成块,然后手动编辑它们,使sql语句“完整”,然后通过批处理脚本执行。这让它变得如此简单。2.3gb。sql文件,简单。

0
Syam Kumar 回答 14分钟 前
  1. 以管理员权限获取命令提示
  2. 将目录更改为存储.sql文件的目录
  3. 执行以下命令
    sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
0
Animus Miles-Militis 回答 14分钟 前

我正在使用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();
    }
}
0
BobbyShaftoe 回答 14分钟 前

使用osql在命令行上运行它,请参见此处:
http://metrix.fcny.org/wiki/display/dev/How+使用OSQL执行SQL脚本

Dominic Zukiewicz 回复 14分钟 前

笔记sqlcmd替换osql.