xml file insert into sql server table using tsql query
DECLARE @xml XML SELECT @xml = x.y FROM OPENROWSET( BULK 'c:\temp\temp.xml', SINGLE_CLOB ) x(y) --INSERT INTO yourTable ... SELECT x.y.value('@Address', 'VARCHAR(MAX)') AS [Address], x.y.value('@Branch', 'VARCHAR(MAX)') AS Branch, x.y.value('@Position', 'VARCHAR(MAX)') AS Position, x.y.value('@Phone', 'VARCHAR(MAX)') AS Phone, x.y.value('@Email', 'VARCHAR(MAX)') AS Email, x.y.value('@LastName', 'VARCHAR(MAX)') AS LastName, x.y.value('@FirstName', 'VARCHAR(MAX)') AS FirstName FROM @xml.nodes('//Node') AS x(y).................................................................................................................................................................
DECLARE @X XML ='<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Node Address="London, 120 Hanover Sq." Branch="TopManagement" Position="CEO" Phone="(205) 555 - 9898" Email="afuller@contoso.com" LastName="Fuller" FirstName="Andrew">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="QA" Position="President QA" Phone="(205) 555 - 9888" Email="jboather@contoso.com" LastName="Boather" FirstName="Jeremy">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="QA" Position="VP QA" Phone="(205) 555 - 9887" Email="adodsworth@contoso.com" LastName="Dodsworth" FirstName="Anne">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="QA" Position="Team Lead Team1" Phone="(205) 555 - 9886" Email="atuckings@contoso.com" LastName="Tuckings" FirstName="Alexander">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="QA" Position="Senior QA" Phone="(205) 555 - 9885" Email="bsmith@contoso.com" LastName="Smith" FirstName="Brenda">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="QA" Position="Team Lead Team2" Phone="(205) 555 - 9885" Email="mbird@contoso.com" LastName="Bird" FirstName="Mary">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="President Dev Dept." Phone="(205) 555 - 9897" Email="sbuchanan@contoso.com" LastName="Buchanan" FirstName="Steven">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="VP Dev Dept." Phone="(205) 555 - 9896" Email="rking@contoso.com" LastName="King" FirstName="Robert">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="Team Lead Team1" Phone="(205) 555 - 9892" Email="lcallahan@contoso.com" LastName="Callahan" FirstName="Laura">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="Senior Dev" Phone="(205) 555 - 9872" Email="jroland@contoso.com" LastName="Roland" FirstName="Jason">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="Team Lead Team2" Phone="(205) 555 - 9882" Email="edanstin@contoso.com" LastName="Danstin" FirstName="Eric">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="Senior Dev" Phone="(205) 555 - 9862" Email="elincoln@contoso.com" LastName="Lincoln" FirstName="Elizabeth">
</Node>
<Node Address="London, 120 Hanover Sq." Branch="Development" Position="Senior Dev" Phone="(205) 555 - 9852" Email="mpeacock@contoso.com" LastName="Peacock" FirstName="Margaret">
</Node>
</Root>'
INSERT INTO YRTABLENAME ([Address],Branch,Position,Phone,Email,LastName,FirstName)
SELECT
n.i.value('@Address','varchar(20)') AS [Address],
n.i.value('@Branch','varchar(20)') AS Branch,
n.i.value('@Position','varchar(20)') AS Position,
n.i.value('@Phone','varchar(20)') AS Phone,
n.i.value('@Email','varchar(20)') as Email,
n.i.value('@LastName','varchar(20)') AS LastName,
n.i.value('@FirstName','varchar(20)') AS FirstName
FROM @X.nodes('Root') AS x(I)
CROSS APPLY
x.I.nodes('Node') AS n(i)
Comments
Post a Comment