web-dev-qa-db-ja.com

Windowsタスクスケジューラを使用したスト​​アドプロシージャの実行

Windowsタスクスケジューラでストアドプロシージャを1時間ごとに実行するようにスケジュールを設定しようとしています(SQL Expressを使用していて、サードパーティのツールをインストールできないため)。ただし、.batファイルの実行などのさまざまな方法を試した後タスクスケジューラから、タスクスケジューラからSqlCmdユーティリティを開き、コマンドライン構文または.sqlスクリプトファイルを渡します。

私はこれができることを知っているので、それは私が見逃したものだと確信していますが、誰かがこれの経験を共有できるなら、私はそれを非常に感謝します。

どうもありがとう

12
richardterris

SQLインスタンスの管理者である場合(SQLExpressを使用しているため、自分のコンピューターでこれを実行しようとしているため、ユーザーがSQLインスタンスの管理者である可能性が高いです)、-Eを使用しないでください。すべて無視してください。

次に、ローカルで作業している場合でもサーバーを指定します。

以下のような単純なsqlコマンドから始めます。

sqlcmd.exe -S "。" -d MY_DATABASE -Q "SELECT * FROM MY_TABLE"

MY_DATABASEとMY_TABLEをdbnameとテーブル名に置き換えます。コマンドラインから実行できることを確認してください。テーブルからデータを返す必要があります。 (コマンドラインオプションでは大文字と小文字が区別されるため、-sは-Sとは異なります)

最後に、タスクスケジューラを介してパラメータをフィードしないでください。すべてのパラメーターを指定してコマンドを.batファイルに入れ、タスクスケジューラからバッチを実行します。

13
e-mre