実行中に入力を求める SQL エージェント ジョブを作成したいと考えています。SQLサーバーで可能ですか? その入力は、SQL エージェント スクリプトで変数として使用されます。
これから私を助けてください。
ありがとう
ニテシュ・クマール
実行中に入力を求める SQL エージェント ジョブを作成したいと考えています。SQLサーバーで可能ですか? その入力は、SQL エージェント スクリプトで変数として使用されます。
これから私を助けてください。
ありがとう
ニテシュ・クマール
いいえ。SQL サーバーではできません。ジョブに手動で入力したい場合は、ファイル/データベーステーブルなどから入力を読み取るジョブ (最初のステップ) にステップを作成し、次に 2 番目のステップで最初のステップの出力を入力として使用することができます。ジョブの実行を開始する前に、手動入力をデータベース テーブル/ファイルに入力する別の方法を作成する必要があります。
ただし、1 つ質問があります。ジョブはスケジュールに従って実行されるはずですが、ジョブはスケジュールに従っていませんか?
xp_cmdshell を使用して VB スクリプトまたは .bat ファイルを実行し、入力を求めてデータを関数に書き戻すことができる場合があります。
問題は、セキュリティ上の理由から xp_cmdshell が通常オフになっていることです。これは、SQL 内の誰かがホスティング サーバーでプログラムを実行できるようにするためです。
この例では、powerscript を使用してデータを取得し、データをテーブルに書き込みますが、すべて xp_cmdshell から実行されます。
@CertFilePath varchar(500) を宣言 @SQL varchar(1000) を宣言 @ScriptFilePath ='c:\myscripts\SomeScript.vbs' を設定
CREATE TABLE #DataTable (行 varchar(255))
INSERT #DataTable EXEC xp_cmdshell @SQL
select * from #DataTable
このコードは xp_CmdShell を有効にします
EXEC sp_configure 'show advanced options', 1 GO -- 現在構成されている詳細オプションの値を更新します。RECONFIGURE GO -- 機能を有効にします。EXEC sp_configure 'xp_cmdshell', 1 GO -- この機能の現在構成されている値を更新します。再構成GO
このコードは xp_cmdshell を無効にします
-- この EXEC sp_configure 'show advanced options', 0 GO の最後で、xp_cmdshell enabled=false /reset を無効に設定します。 -- 詳細オプションの現在の構成値を更新します。RECONFIGURE GO -- 機能を有効にします。EXEC sp_configure 'xp_cmdshell', 0 GO -- この機能の現在構成されている値を更新します。再構成GO