Как запустить выборку с использованием командного файла?
Мне нужно запросить базу данных сервера SQL с помощью командного файла. Я поместил эти cmdlines в командный файл. Когда я запускаю командный файл. Курсор остается там после установления доверенного соединения.
OSQL -E
use db1
SELECT count(*) FROM table_01 t1
left join table_02 t2 on t1.tableID = t2.tableID
WHERE t1.Date < '20110724'
Go
Любые предложения, пожалуйста?
2 ответа
Решение
osql имеет простую природу.
Например, я запускаю команду SQL из e:\backupdb.txt с
osql -S servername -U user -P password -i e:\backupdb.txt
это делает работу
Вот как я это делаю.
Сначала создайте нужный сценарий SQL и сохраните его в виде простого текстового файла.
Далее, используйте SQLCMD (или OSQL или, извините за мысль, ISQL) для вызова этого файла, примерно так:
SQLCMD -S %1 -E -b -h-1 -I -d tempdb -i BulkDeploy.txt > BulkDeploy_%DateString%.txt
Куда:
- S указывает сервер экземпляра SQL (здесь, указанный в первом параметре пакета)
- E использовать NT аутентификацию
- b если SQL обнаружит ошибку, верните значение, которое пакет ERRORLEVEL может получить и обработать
- h-1 не возвращает строк заголовка (возвращаются наборы данных IF)
- Я включил QUOTED_IDENTIFIER (это однажды взорвалось мне в лицо, я забыл, как и почему, и с тех пор я включил его)
- База данных d для подключения
- я выполняю следующий скрипт и завершаю работу
- > направляет любой вывод в указанный файл для последующей обработки
SQLCMD et. и др. Есть много параметров, проверить их в Books Online. Дополнительные тонкости могут быть достигнуты с помощью параметров партии.