【发布时间】:2021-11-25 22:00:00
【问题描述】:
我需要提取 SSRS 中订阅表的 ExtensionSettings 字段中的路径列表。有人有这个脚本吗?
【问题讨论】:
标签: sql-server reporting-services
我需要提取 SSRS 中订阅表的 ExtensionSettings 字段中的路径列表。有人有这个脚本吗?
【问题讨论】:
标签: sql-server reporting-services
我在这里找到了一个不错的脚本:http://www.andrewing.co.uk/parse-ssrs-subscriptions-table/
WITH S AS (
SELECT TOP 1000
[SubscriptionID],
ExtensionSettings = cast(ExtensionSettings as xml)
FROM [ReportServer].[dbo].[Subscriptions]
)
SELECT
S.SubscriptionID,
TransmissionMethod = CASE
ExtensionSettings.value('(/ParameterValues/ParameterValue/Name)[1]', 'varchar(50)')
WHEN 'TO' THEN 'Email'
WHEN 'PATH' THEN 'File Share'
ELSE 'Unknown' END,
FileSharePath = ExtensionSettings.query('
for $parameter in /ParameterValues/ParameterValue
let $name := $parameter/Name
let $value := $parameter/Value
where $name = "PATH"
return data($value)'),
FileName = ExtensionSettings.query('
for $parameter in /ParameterValues/ParameterValue
let $name := $parameter/Name
let $value := $parameter/Value
where $name = "FILENAME"
return data($value)'),
RenderFormat = ExtensionSettings.query('
for $parameter in /ParameterValues/ParameterValue
let $name := $parameter/Name
let $value := $parameter/Value
where $name = "RENDER_FORMAT" or $name = RenderFormat"
return data($value)'),
EmailSubject = ExtensionSettings.query('
for $parameter in /ParameterValues/ParameterValue
let $name := $parameter/Name
let $value := $parameter/Value
where $name = "Subject"
return data($value)'),
ExtensionSettings
FROM S
【讨论】:
FileSharePath = ExtensionSettings.query('/ParameterValues/ParameterValue[Name[text() = "PATH"]]/Value/text(),如果你只想要一个值,那么你应该使用.value而不是.query