SQL Server执行大文件SQL脚本

今天工作遇到一个问题:数据库本来再SQL Server2008中,现在需要备份一个数据库到另一台服务器上,这台服务器装的事SQL Server2005。首先想到的是数据库分离和数据库备份,结果两种方法都出现异常。最后想到将数据导出未SQL脚本,然后使用系统命令执行大文件SQL脚本。

因数据库较大,数据较多,导出SQL脚本时选中分表存储,最后导出的SQL文件基本都是2G左右,并且有大约50个文件,所以写了一个批处理文件,进行批量执行,最后跑了大约5小时。

下面将附一个缩减版的批处理:

::SQL2005使用osql命令,若是SQL2008使用sqlcmd命令

    osql -S localhost -U sa -P 123456 -i E:LgBigDatadb2sqldbo.*.Table.sql
    osql -S localhost -U sa -P 123456 -i E:LgBigDatadb2sqldbo.*.Table.sql
    osql -S localhost -U sa -P 123456 -i E:LgBigDatadb2sqldbo.*.Table.sql
    osql -S localhost -U sa -P 123456 -i E:LgBigDatadb2sqldbo.*.Table.sql


echo 执行完成

pause
osql -S 服务器 -U 用户名 -P 密码 -i SQL路径




附:SQL Server 2008执行大文件SQL脚本命令

  cd C:Program FilesMicrosoft SQL Server100ToolsBinn


  sqlcmd -S . -U sa -P 123 -d test -i data.sql

  参数说明:-S 服务器地址 -U 用户名 -P 密码 -d 数据库名称 -i 脚本文件路径

  本地服务器地址可以写 . 比较轻松,也可写(local)或者IP地址

 
原文地址:https://www.cnblogs.com/charles-jiang/p/8423005.html