web-dev-qa-db-ja.com

MS SQL Studioで1時間ごとに自動的にクエリを実行する

大企業でアプリケーションをサポートしています。私の役割の1つは、データをクリーンアップすることです。 1時間ごとに実行する必要があるクエリがあり、それを自動化したいと思います。組織のポリシーにより、SQL Serverエージェントジョブを作成したり、スキーマを変更したりすることはできません。データを操作することしかできません。

果てしない

WHILE(1=1)
BEGIN 
WAITFOR DELAY '01:00';
--do work
END

私のために仕事をしますが、私は永久に開いた接続の考えに肩をすくめます。

理想的には、MS SS自体をスクリプト化して特定のコードを1時間ごとに実行しますが、それが可能かどうかはわかりません。

この問題の解決策はありますか?

13
Ivan Koshelev

あなたの友達は sqlcmd (Microsoft Technet)

  1. クリーンアップジョブの実行に必要なスクリプトを使用してSQLファイルを作成します
  2. Sqlcmd.exeと必要なパラメーターを使用してスクリプトを実行します。
  3. Windowsスケジュールタスクを作成し、必要なすべてのパラメーターを指定してコマンドを追加します

例えば。

sqlcmd -d YOUR_DB -E -i YOUR_SCRIPT.SQL -o OUTPUTFILE.TXT 

幸運を。

22

クエリを実行するためにManagement Studioは必要ありません。

誰かにジョブをスケジュールさせるオプションが本当にない場合は、sqlcmdを調べる必要があります hot2useの回答に記載されているように

サポートされていないバージョンを使用している場合(バージョンを指定しなかったため)、コマンドラインクライアントである osql もありますが、このツールは廃止されています。

次に、必要なスケジューラ(Windowsタスクスケジューラなど)を使用してコマンドをスケジュールし、次のように実行します。

OSQL -E -i c:\temp\dowork.sql

サーバーの選択と認証に使用できるオプションについては、ドキュメントをご覧ください。