【发布时间】:2021-09-02 18:06:43
【问题描述】:
我在 Stack 上得到了这个惊人的代码,但它是 8 年前的,但运行良好,但是当运行 t 脚本时,ObjectName 列总是为 NULL,如果可能的话,有人可以帮我修复它吗?
SQL 脚本
SELECT Pkg.props.value('../../DTS:Property[@DTS:Name="ObjectName"]
[1]','varchar(MAX)') ObjectName,
Pkg.props.value('(@SQLTask:SqlStatementSource)[1]', 'NVARCHAR(MAX)') AS
SqlStatement FROM (select cast(pkgblob.BulkColumn as XML) pkgXML from
openrowset(bulk '\\MYDTS.dtsx',single_blob)
as pkgblob) t CROSS APPLY pkgXML.nodes('//DTS:ObjectData//SQLTask:SqlTaskData') Pkg(props)
UNION
SELECT Pkg.props.value('../../../../DTS:Property[@DTS:Name="ObjectName"]
[1]','varchar(MAX)') ObjectName,
Pkg.props.value('data(./properties/property[@name=''SqlCommand''])[1]',
'varchar(max)') SqlStatement FROM(select cast(pkgblob.BulkColumn as XML)
pkgXML from openrowset(bulk '\\MYDTS.dtsx',single_blob) as
pkgblob) t CROSS APPLY
pkgXML.nodes('//DTS:Executable//pipeline//components//component') Pkg(props)
WHERE Pkg.props.value('data(./properties/property[@name=''SqlCommand''])
[1]', 'varchar(max)') <>''
结果附在下面。我想显示 ObjectName 而不是 NULL,但我不知道如何修复它。
【问题讨论】: