Как запустить скрипт с помощью файла 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