I'm new to transforming XML strings into SQL Server tables. When I execute the following code, it produces tabular data in the result window of Management Studio. If I try to uncomment the insert into line the the query errors out. The table I've created looks like this:
And the T-SQL is this (I'm uncertain what I'm doing wrong):
DECLARE @XML XML
SET @XML = '
<Codes>
<Code>
<TranCode>09764812</TranCode>
<TranDescr>WP FBCCP ADJUSTMENT</TranDescr>
<PosTranCode>77724</PosTranCode>
<NegTranCode>88820</NegTranCode>
</Code>
<Code>
<TranCode>09764804</TranCode>
<TranDescr>WP FBCCP CRM</TranDescr>
<PosTranCode>77724</PosTranCode>
<NegTranCode>88820</NegTranCode>
</Code>
<Code>
<TranCode>09764804</TranCode>
<TranDescr>WP FBCCP CRM</TranDescr>
<PosTranCode>77724</PosTranCode>
<NegTranCode>88820</NegTranCode>
</Code>
</Codes>'
DECLARE @handle INT
DECLARE @PrepareXmlStatus INT
EXEC @PrepareXmlStatus= sp_xml_preparedocument @handle OUTPUT, @XML
--INSERT INTO 670_TransCodes (TranCode,TranDescr,PosTranCode,NegTranCode)
SELECT TranCode,TranDescr,PosTranCode,NegTranCode
FROM OPENXML(@handle, '/Codes/Code', 2)
WITH (
TranCode varchar(20) 'TranCode',
TranDescr varchar(50) 'TranDescr',
PosTranCode INT 'PosTranCode',
NegTranCode INT 'NegTranCode'
)
EXEC sp_xml_removedocument @handle
