私は、単純なXML渡していますストアドプロシージャがあります。オープンXML挿入 - SQL 2005
DECLARE @Temp TABLE (
ProductId NVARCHAR(10)
)
:
'<Products><ProductId>1</ProductId><ProductId>2</ProductId></Products>'
を私は商品コード列を持つSQLで@tempのテーブルを持っています
XMLにProductIdをループする(無限になる可能性があります)、XMLにProductIdノードが残っていなくなるまで(@tempテーブルに)挿入する文を書く必要があります。
カーソルを含むソリューションは実現不可能です!続き
は、私が実行しようとしているコードです:
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)
私はエラーを取得しておいてください。
Must declare the table variable "@test".
@testをxml文字列で置き換えて、INSERTのSELECT部分だけを実行してみてください。最初に動作することを確認してください –
私は文字列のFROMを実行できません。 –
ええ、OPENXMLを使用する必要があります - 私の更新された答えを参照してください。 Ref:OPENXML:http://msdn.microsoft.com/en-us/library/aa276847%28SQL.80%29.aspx –