如何使用BAT文件运行脚本?

时间:2010-07-15 19:00:46

标签: sql sql-server windows batch-file sqlcmd

我想让BAT文件打开一个sql server脚本。目前我在sql文件中有这段代码:

declare @path varchar(255), @mydb varchar(50)
SELECT @mydb = 'timeclockplus'
select @path = 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Backup\' 
            + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak'
BACKUP DATABASE @mydb TO DISK = @path

如何从BAT文件中打开此SQL文件?

我目前正试图像这样运行它:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql -E 
   -S Sql server-hl7\timeclockplus timeclockplus.sql -oresults.txt

但是BINN目录中不存在OSQL,

4 个答案:

答案 0 :(得分:16)

您应该从批处理文件中调用sqlcmd命令行工具。假设您的sql文件是“backup.sql”,命令行将类似于:

sqlcmd -E -S yoursqlinstance -i backup.sql

-E使用可信连接,如果需要指定SQL用户名和密码,请替换为-U-P。另请参阅this article with examples

答案 1 :(得分:4)

sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql

如果您没有可信连接,请将/ E替换为/ U和/ P

答案 2 :(得分:3)

如果你想要一个更好的答案,这里是:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
:: batch file for sql query
SET FIELDVAL=Empty
SET DBNAME=MYDB
SET SQLSTRING=SELECT column_name(s)^
 FROM table_name1^
 INNER JOIN table_name2^
 ON table_name1.column_name=table_name2.column_name^
 AND table_name2.field=%FIELDVAL%
ECHO !SQLSTRING!

ECHO.
sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W
ECHO Query is done. Hit any key to close this window....
pause>nul

答案 3 :(得分:0)

开始>运行>输入Cmd。

MyDrive:\ mypath中\ Mybat.bat

=)