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

9

我希望一个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个回答

16

你应该从批处理文件中调用sqlcmd命令行工具。假设你的SQL文件名为“backup.sql”,则命令行应该类似于:

sqlcmd -E -S yoursqlinstance -i backup.sql

-E使用可信连接,如果您需要指定 SQL 用户名和密码,请改用 -U-P。另请参见此带有示例的文章


+1:我太慢了,附加链接:http://msdn.microsoft.com/en-us/library/ms165702.aspx - OMG Ponies
好的链接,已将其添加到答案中。 - driis
先生,您好。但是关于如何创建批处理文件的整个编码是怎样的呢? - WTFZane

4
sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql

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

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

0

开始 > 运行 > 输入 Cmd。

MyDrive:\Mypath\Mybat.bat

=)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接