Как запустить скрипт с использованием BAT-файла? - PullRequest
8 голосов
/ 15 июля 2010

Я хотел бы, чтобы BAT-файл открывал скрипт сервера sql. В настоящее время у меня есть этот код в файле 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

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

Я сейчас пытаюсь запустить его так:

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

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

Ответы [ 4 ]

16 голосов
/ 15 июля 2010

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

sqlcmd -E -S yoursqlinstance -i backup.sql

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

4 голосов
/ 15 июля 2010
sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql

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

3 голосов
/ 13 января 2012

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

@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 голосов
/ 15 июля 2010

Пуск> Выполнить> Введите Cmd.

MyDrive: \ Mypath \ Mybat.bat

=)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...