Hello
I have 2 questions …
- The code below (Thanks Yitzhak), returns a packages task and connection manager, how do I return the contents of Execute SQL tasks?
- Can someone recommend a tutorial on querying XML documents in TSQL, I thought when I submitted my original question, it would be a one-off, but now we’re using it, I’m getting more questions
DECLARE @xmlXML;
SELECT @xml= XmlDoc
FROMOPENROWSET(BULKN'C:\ImportTest.dtsx',SINGLE_BLOB)AS Tab(XmlDoc);
-- Data Flow Tasks
;WITH XMLNAMESPACES('www.microsoft.com/SqlServer/Dts'as DTS), rs AS
(
SELECT col.value('@refId','VARCHAR(1024)')as refId
, col.value('@connectionManagerRefId','VARCHAR(1024)')as connectionManagerRefId
, col.value('@connectionManagerID','VARCHAR(1024)')as connectionManagerID
,SUBSTRING(PARSENAME(REPLACE(col.value('@connectionManagerID','VARCHAR(1024)'),':','.'), 2), 2,LEN(PARSENAME(REPLACE(col.value('@connectionManagerID','VARCHAR(100)'),':','.'), 2))-2)AS pristineGUID
--, TRIM('{}' FROM PARSENAME(REPLACE(col.value('@connectionManagerID', 'VARCHAR(100)'), ':', '.'), 2)) AS GUID-- SQL Server 2017 and later
FROM @xml.nodes('(//pipeline/components/component/connections/connection)')as tab(col)
)
SELECT*FROM rs;
-- Data Flow Tasks
;WITH XMLNAMESPACES('www.microsoft.com/SqlServer/Dts'as DTS), rs AS
(
SELECT col.value('@refId','VARCHAR(100)')as refId
, col.value('@name','VARCHAR(1024)')as TaskName
, col.value('@componentClassID','VARCHAR(1024)')as ExecutableType
, col.value('(connections/connection/@connectionManagerRefId)[1]','VARCHAR(1024)')as connectionManagerRefId
, col.value('../@*:SqlStatementSource[1]','VARCHAR(1024)')as SqlStatementSource
FROM @xml.nodes('//pipeline/components/component')as tab(col)
)
SELECT*FROM rs;
Thanks in advande
Roy