0

SQL Server エージェント ジョブでXML.modifyを使用して XML 値を変更しようとしています。私はSQL Server 2008を使用しています。これが私のコードです...

DECLARE @temp XML;
DECLARE @newname VARCHAR(50);
SELECT @temp = CAST(ExtensionSettings AS XML) FROM [ReportServer].[dbo].[Subscriptions] WHERE SubscriptionID = 'a2e1dd4e-5f65-4f0e-bc5a-8e58d21d7292';
SET @newname = 'Monthly_Data_' + CONVERT(VARCHAR(7), DATEADD(day, -1, GETDATE()), 120);

SET @temp.modify('replace value of (/ParameterValues/ParameterValue/Value[../Name/text()="FILENAME"]/text())[1] with sql:variable("@newname")');

UPDATE [ReportServer].[dbo].[Subscriptions] SET ExtensionSettings = CAST(@temp AS varchar(2000)) WHERE SubscriptionID = 'a2e1dd4e-5f65-4f0e-bc5a-8e58d21d7292';

このコードをクエリ ウィンドウで実行した場合は正常に実行されますが、ジョブのステップとして実行すると、ジョブが失敗します。問題はラインにあるようです...

SET @temp.modify('replace value of (/ParameterValues/ParameterValue/Value[../Name/text()="FILENAME"]/text())[1] with sql:variable("@newname")');

コメントアウトしてジョブを実行すると、正常に完了するためです。

XML.modify をジョブで使用しないことはできますか? 何が足りないの?!

ありがとう

4

1 に答える 1