How to read data from XML string
--Variables
Decleration
DECLARE @XMLData VARCHAR(MAX)
DECLARE @idoc INT
--
Creating Temporary Table
CREATE TABLE #TEMP_TABLE
(
REC_ID INT IDENTITY(1,1),
[USER_ID] INT,
[USER_NAME] VARCHAR(50),
[PASSWORD] VARCHAR(50),
)
--Case
1
SET @XMLData= '<USERS>
<USER USER_ID="1" USER_NAME="Cherukuri" PASSWORD="IDontKnow" />
<USER USER_ID="2" USER_NAME="Venkateswarlu" PASSWORD="Hero" />
<USER USER_ID="3" USER_NAME="Legend" PASSWORD="King" />
</USERS>'
--Reading
Data from XML and inserting into Temp Table
EXECUTE sp_xml_preparedocument @idoc OUTPUT, @XMLData
INSERT INTO #TEMP_TABLE
SELECT * FROM OpenXML(@idoc, '/USERS/USER',1)
WITH #TEMP_TABLE
EXECUTE sp_xml_removedocument @idoc
--Displaying
data from Temp Table
SELECT * FROM #TEMP_TABLE
DELETE FROM #TEMP_TABLE
--Case
2
SET @XMLData= '<USERS>
<USER>
<USER_ID>1</USER_ID>
<USER_NAME>Cherukuri</USER_NAME>
<PASSWORD>IDontKnow</PASSWORD>
</USER>
<USER>
<USER_ID>2</USER_ID>
<USER_NAME>Venkateswarlu</USER_NAME>
<PASSWORD>Hero</PASSWORD>
</USER>
<USER>
<USER_ID>3</USER_ID>
<USER_NAME>Legend</USER_NAME>
<PASSWORD>King</PASSWORD>
</USER>
</USERS>'
--Reading
Data from XML and inserting into Temp Table
EXECUTE sp_xml_preparedocument @idoc OUTPUT, @XMLData
INSERT INTO #TEMP_TABLE
SELECT * FROM OpenXML(@idoc, '/USERS/USER',2)
WITH #TEMP_TABLE
EXECUTE sp_xml_removedocument @idoc
--Displaying
data from Temp Table
SELECT * FROM #TEMP_TABLE
--Removing
created Temp Table
DROP TABLE #TEMP_TABLE
Note : XML attribute
names and SQL tables name should match. These are case sensitive. If don’t match
the column in Table with XML attribute name Null will stored in that column.