我想有一个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
但BINQL目录中不存在OSQL,
您应该从批处理文件中调用sqlcmd命令行工具。 假设你的sql文件是“backup.sql”,命令行应该是这样的:
sqlcmd -E -S yoursqlinstance -i backup.sql
-E
使用可信连接,如果需要指定SQL用户名和密码,则用-U
和-P
替换。 另请参阅这篇文章的例子 。
sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql
如果您没有可信连接,请用/ U和/ P替换/ E
如果你想得到更好的答案,这里是:
@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
开始>运行>键入Cmd。
MyDrive:\ mypath中\ Mybat.bat
=)