-1

バッチ ファイルを使用して SQL Server データベースにクエリを実行する必要があります。これらのコマンドラインをバッチ ファイルに入れました。バッチファイルを実行すると。信頼できる接続を確立した後、カーソルがそこにとどまります。

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

何か提案はありますか?

4

2 に答える 2

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 が取得して処理できる値を返します
  • h-1 ヘッダー行を返さない (IF データセットが返される)
  • 私はQUOTED_IDENTIFIERをオンに設定しました(これは私の顔に一度吹き飛ばされました.方法や理由を忘れて以来、それを含めています)
  • d 接続するデータベース
  • 次のスクリプトを実行し、完了したら終了します
  • > その後の処理のために、出力を指定されたファイルに送信します

SQLCMDなど。アル。には多くのパラメーターがあります。Books Online で確認してください。バッチ パラメータを使用すると、さらに微妙な調整を行うことができます。

于 2011-06-28T14:13:43.970 に答える
1

osql の性質は単純です。

たとえば、e:\backupdb.txt から SQL コマンドを実行します。

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

それは仕事をします

于 2011-06-28T14:05:12.517 に答える