2017-07-11 7 views
0

私は、ジョブステップで使用されるスクリプトを見つけるために、以下のコマンドを使用しています。 要件:SQL Serverのジョブからspcificパラメータ値を見つける方法

の仕事では、私は、特定のパラメータ値を見つけるしたいと思います。私はしたいと思います上記のコマンドでは...: '\一時\ C'、@上書き= 'Y'

を は私が

以下のexec sp_backupする@ backuplocation =のようなコマンドを持つジョブステップで仮定しましょう細かい@backuplocationパラメータの詳細、すなわち 'C:\ Temp'。パラメータ名は各ジョブで一定です。

答えて

0

各ジョブでパラメータ名が一定であると仮定します。これはそれを行う必要があります。

SELECT F1.command, 
     O.splitdata 
FROM 
(
    SELECT *, 
      CAST('<X>'+REPLACE(SUBSTRING(F.command, PATINDEX('%@backuplocation%', F.command), LEN(F.command)), ',', '</X><X>')+'</X>' AS XML) AS xmlfilter 
    FROM msdb.dbo.sysjobsteps F 
    WHERE command LIKE '%--Should provide the default location%' 
) F1 
CROSS APPLY 
(
    SELECT fdata.D.value('.', 'varchar(100)') AS splitdata 
    FROM f1.xmlfilter.nodes('X') AS fdata(D) 
) O; 

をので、例えば、私は私たちのサーバーに対して自分のマシン上でそれを実行する場合:

SELECT F1.command, 
     O.splitdata 
FROM 
(
    SELECT *, 
      CAST('<X>'+REPLACE(SUBSTRING(F.command, PATINDEX('%@db_nm%', F.command), LEN(F.command)), ',', '</X><X>')+'</X>' AS XML) AS xmlfilter 
    FROM msdb.dbo.sysjobsteps F 
    WHERE F.command like 'exec dba..mnt_sts  @db_nm=''msdb'', @sts_object_recompile_fg=   0' 
) F1 
CROSS APPLY 
(
    SELECT fdata.D.value('.', 'varchar(100)') AS splitdata 
    FROM f1.xmlfilter.nodes('X') AS fdata(D) 
) O; 

を、これは次のように返します。

enter image description here

+0

はありがとうございましたあなたの返信。パラメータ値を返さない。その戻りコマンド全体。 – Franklin

関連する問題