Как запустить скрипт с помощью файла BAT?

Я хотел бы, чтобы файл BAT открыл сценарий sql server. В настоящее время у меня есть этот код в файле sql:

declare @path varchar(255), @mydb varchar(50)
SELECT @mydb = 'timeclockplus'
select @path = 'C:Program FilesMicrosoft SQL ServerMSSQL.2MSSQLBackup' 
            + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak'
BACKUP DATABASE @mydb TO DISK = @path

Как открыть этот файл SQL из файла BAT?

в настоящее время я пытаюсь запустить его, как это:

C:Program FilesMicrosoft SQL ServerToolsBinnosql -E 
   -S Sql server-hl7timeclockplus timeclockplus.sql -oresults.txt

но OSQL не существует в каталоге BINN,

4 ответов


вы должны вызвать sqlcmd инструмент командной строки из вашего пакетного файла. Предполагая, что ваш sql-файл " backup.sql", в командной строке будет что-то вроде:

sqlcmd -E -S yoursqlinstance -i backup.sql

-E использует доверенное соединение, замените на -U и -P Если вам нужно указать имя пользователя и пароль SQL. См. также эта статья с примерами.


sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql

замените /E на /U и /P, если у вас нет надежного соединения


Если вы хотите получить гораздо лучший ответ, вот он:

@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.летучая мышь!--1-->

=)