Het is mogelijk om gebruik te maken van XML om gegevens in te voeren in SQL server.
Stel ik heb het volgende xml:
Bij het invoeren van een nieuwe order weet je nog niet wat de orderId is (wat een attribuut kan zijn van de element Order. Ik wil het bovenstaande order invoeren met het volgende Statement
vervolgens wil ik de orderline invoeren door gebruik te maken van dezelfde xml (omdat de order al ingevoerd is kan je de Order id achterhalen met het volgende
nou vraag ik mij af hoe ik dit kan bereiken. Normaal gesproken zal ik op de volgende manier een order invoeren wanneer een orderId aanwezig is:
Ik heb echt geen enkele idee hoe ik dit aankan pakken.
Heeft er iemand hier misschien ervaring met soortgelijke probleem?
Greetz B
Stel ik heb het volgende xml:
code:
1
2
3
4
5
| <Order>
<OrderLine>
<ProductName>PC</ProductName>
</OrderLine>
</Order> |
Bij het invoeren van een nieuwe order weet je nog niet wat de orderId is (wat een attribuut kan zijn van de element Order. Ik wil het bovenstaande order invoeren met het volgende Statement
code:
1
2
3
4
5
6
| INSERT INTO Order
SELECT *
FROM OPENXML(@hDoc, 'Order/OrderLine')
WITH Order
EXEC sp_xml_removedocument @hDoc
GO |
vervolgens wil ik de orderline invoeren door gebruik te maken van dezelfde xml (omdat de order al ingevoerd is kan je de Order id achterhalen met het volgende
code:
1
2
| declare @orderid int set @orderId=scope_identity() |
nou vraag ik mij af hoe ik dit kan bereiken. Normaal gesproken zal ik op de volgende manier een order invoeren wanneer een orderId aanwezig is:
code:
1
2
3
4
5
6
7
8
9
| INSERT INTO OrderLine
SELECT *
FROM OPENXML(@hDoc, 'Order/OrderLine')
WITH (
OrderId int '@OrderId',
ProductName varchar(10) 'ProductName'
)
EXEC sp_xml_removedocument @hDoc
GO |
Ik heb echt geen enkele idee hoe ik dit aankan pakken.
Heeft er iemand hier misschien ervaring met soortgelijke probleem?
Greetz B