I need output something like this
<Employee EmpID="4">
<FirstName>Rob</FirstName>
<LastName>Walters</LastName>
</Employee>
<Employee EmpID="168">
<FirstName>Rob</FirstName>
<MiddleName>T</MiddleName>
<LastName>Caron</LastName>
</Employee>
But the SQL to do this:
SELECT e.EmployeeID AS "@EmpID",
c.FirstName,
c.MiddleName, c.LastName
FROM Employee AS e
INNER JOIN Contact AS c
ON c.ContactID = e.ContactID
WHERE c.FirstName = 'Ross'
FOR XML PATH (''), ROOT ('Employees');
Return this error:
SQL Server Database Error: Row tag omission (empty row tag name) cannot be used with attribute-centric FOR XML serialization.
See the SQLFiddle:
SELECT (SELECT e.EmployeeID AS "@EmpID" FOR XML PATH ('EmployeeID'), TYPE), c.FirstName, c.MiddleName, c.LastName ... FOR XML PATH ('Employee'), ROOT ('Employees');is probably what you're after.<Employee><Employee EmpID="256"/><FirstName>Ross</FirstName><MiddleName></MiddleName><LastName>Geller</LastName></Employee>SQLFiddle but i need<Employee EmpID="256"><FirstName>Ross</FirstName><MiddleName></MiddleName><LastName>Geller</LastName></Employee>for xml path ('')tofor xml path ('Employee')in your current query.