Trváte na tom při používání OpenXML? Je to staré, je to zastaralé – používání nativních funkcí XQuery je obvykle mnohem jednodušší .
Zkuste něco takového:
DECLARE @Employees TABLE (EmployeeID INT, Title VARCHAR(20), FirstName VARCHAR(20),LastName VARCHAR(20))
INSERT INTO @Employees VALUES(1, 'Engineering', 'Mike', 'Brown')
INSERT INTO @Employees VALUES(2, 'Programmer', 'Yves', 'Anthony')
DECLARE @doc XML
SET @doc = '<ROOT>
<Employee EmployeeID = "1" EmpStatus = "Full Time"/>
<Employee EmployeeID = "2" EmpStatus ="Part Time" />
</ROOT>'
;WITH XmlCTE AS
(
SELECT
EmpID = Empl.value('@EmployeeID', 'int'),
EmpStatus = Empl.value('@EmpStatus', 'varchar(10)')
FROM @doc.nodes('/ROOT/Employee') AS Tbl(Empl)
)
SELECT
e.*, x.EmpStatus
FROM
@Employees e
INNER JOIN
xmlcte x ON e.EmployeeID = x.EmpID
To mi dává výstup: