XML入力を取得して一時テーブルに保存する次のクエリがあります。クエリを動的にするか、テーブルまたは列番号の変更を動的に調整する関数を作成する必要があります。その方法は次のとおりです。
DECLARE @sXML NVARCHAR(4000)
DECLARE @hDoc INT
SET @sXML = '
<Root>
<Item>
<Key>1</Key>
<Test1>A</Test1>
<Test2>A2</Test2>
</Item>
<Item>
<Key>2</Key>
<Test1>B</Test1>
<Test2>B3</Test2>
</Item>
</Root>
'
CREATE TABLE #tabletest
(
[Key] INT,
Test1 NVARCHAR(50),
Test2 NVARCHAR(50)
)
EXEC sp_xml_preparedocument @hDoc OUTPUT, @sXML
INSERT INTO #tabletest SELECT * FROM OPENXML (@hDoc, '/Root/Item', 2) WITH #tabletest
EXEC sp_xml_removedocument @hDoc
select * from #tabletest
DROP TABLE #tabletest