使用批处理文件执行一组SQL查询?

use*_*806 29 database sql-server cmd batch-file

我正在使用SQL Server数据库.我有这些SQL查询:

Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;
Run Code Online (Sandbox Code Playgroud)

是否可以使用批处理文件运行这些脚本?该数据库是一个远程数据库.

谢谢!

Shi*_*iva 56

将命令保存在.SQL文件中,例如:ClearTables.sql在您的C:\temp文件夹中.

的内容 C:\Temp\ClearTables.sql

Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;
Run Code Online (Sandbox Code Playgroud)

然后使用sqlcmd如下执行它.由于您说数据库是远程的,因此请使用以下语法(在更新服务器和数据库实例名称之后).

sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql
Run Code Online (Sandbox Code Playgroud)

例如,如果远程计算机名称为SQLSVRBOSTON1且数据库实例名称为MyDB1,则命令为.

sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
Run Code Online (Sandbox Code Playgroud)

另请注意,-E指定默认身份验证.如果您有用于连接的用户名和密码,请使用-U-P切换.

您将通过打开CMD命令窗口来执行所有这些操作.

使用批处理文件.

如果要将其保存在批处理文件中并双击以运行它,请按以下步骤操作.

创建并保存ClearTables.bat如此.

echo off
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
set /p delExit=Press the ENTER key to exit...:
Run Code Online (Sandbox Code Playgroud)

然后双击它以运行它.它将执行命令并等待,直到您按一个键退出,这样您就可以看到命令输出.


Bat*_*ech 5

查看SQL Server附带的SQLCMD命令行工具.http://technet.microsoft.com/en-us/library/ms162773.aspx