我正在使用SQL Server数据库。我有这些SQL查询:
Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;
是否可以使用批处理文件运行这些脚本?该数据库是一个远程数据库。
谢谢!
答案 0 :(得分:54)
将命令保存在.SQL
文件中,例如:ClearTables.sql
,例如在C:\temp
文件夹中。
C:\Temp\ClearTables.sql
Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;
然后使用sqlcmd
执行如下操作。由于您说数据库是远程的,请使用以下语法(在更新服务器和数据库实例名称之后)。
sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql
例如,如果远程计算机名称为SQLSVRBOSTON1且数据库实例名称为MyDB1,则命令为。
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
另请注意,-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...:
然后双击它以运行它。它将执行命令并等待,直到您按一个键退出,这样您就可以看到命令输出。
答案 1 :(得分:5)
查看SQL Server附带的SQLCMD命令行工具。 http://technet.microsoft.com/en-us/library/ms162773.aspx
答案 2 :(得分:2)
使用 SQLCMD 实用程序。
http://technet.microsoft.com/en-us/library/ms162773.aspx
有一个connect语句,允许您在同一批次中从数据库服务器A转移到服务器B.
:连接server_name [\ instance_name] [-l timeout] [-U user_name [-P password]] 连接到SQL Server实例。同时关闭当前连接。
另一方面,如果您熟悉 PowerShell ,则可以通过编程方式执行此操作。
http://technet.microsoft.com/en-us/library/cc281954(v=sql.105).aspx
答案 3 :(得分:0)
不同的方式:
使用SQL Server代理(如果是本地实例)
使用类型为“T-SQL”的新步骤在sql server代理中安排作业,然后运行该作业。
使用SQLCMD
要使用SQLCMD,请参阅http://technet.microsoft.com/en-us/library/ms162773.aspx
使用SQLPS
要使用SQLPS,请参阅http://technet.microsoft.com/en-us/library/cc280450.aspx