Преминете през XML, за да вмъкнете данни във временна таблица - SQL 2005

Опитвам се да изпълня този (самостоятелен) SQL:

Declare @test XML
SET @test = '<Products><ProductId>1</ProductId><ProductId>2</ProductId></Products>'
DECLARE @Temp TABLE(        
    ProductId NVARCHAR(10)
   )  
INSERT INTO @Temp(ProductId)
SELECT tab.col.value('./ProductId[1]','NVARCHAR(10)') AS 'ProductId'
FROM @test
CROSS APPLY
xml_data.nodes('//Products') AS tab(col)

Изглежда, че искам да създам таблица, вместо да използвам временна таблица, има ли начин да преминете през XMl възлите и да ги вмъкнете в временна таблица (без да използвате курсори).


person Murtaza Mandvi    schedule 27.08.2009    source източник


Отговори (1)


Опитайте тази:

declare @testXml as xml;
set @testXml = '<products><product productId="1"/><product productId="2"/></products>';
declare @temp table(ProductId nVarChar(10));
insert into @temp(ProductId)
select [xmlData].[Col].value('./@productId', 'nVarChar(10)') as [ProductId]
from @testXml.nodes('/products/product') as [xmlData]([Col]);
person Ken    schedule 27.08.2009