2011-06-28 2 views
-2

Мне нужно запросить базу данных SQL Server с помощью командного файла. Я помещал эти cmdlines в пакетный файл. Когда я запускаю командный файл. Курсор остается там после установления надежного соединения.Как запустить select statment с помощью командного файла?

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 в, скажем, Google? – gbn

ответ

1

osql имеет простую фальшивку.

Например, я запустить команду SQL из й: \ backupdb.txt с

osql -S servername -U user -P password -i e:\backupdb.txt 

это делает работу

2

Вот как я это делаю.

Сначала создайте 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 может получить и обработать
  • ч-1 возврата нет заголовка строки (IF наборы данных возвращаются)
  • Я поставил QUOTED_IDENTIFIER на (это дул мне в лицо раз, я забыл, как и почему, и я включил его до сих пор)
  • d базы данных для подключения к
  • я выполнить следующий сценарий и выйти, когда сделано
  • > направляет любой вывод в указанный файл для последующей обработки

SQLCMD и др. и др. имеют много параметров, проверьте их в электронной документации. Дальнейшие тонкости могут быть достигнуты с помощью параметров партии.