1

XMLのデータベースがあり、SQLServerDBにエクスポートする必要があります。したがって、次のようなxmlをエクスポートできます:tag = "value"しかし、私のXMLは次のとおり<tag>value</tag>です。

私の質問:

DECLARE @tempTable TABLE (
userId INT,
userName NVARCHAR(50),
password NVARCHAR(50)
)
DECLARE @xml XML
SET @xml="my_XML"

INSERT INTO @tempTable<br />
SELECT Tbl.Col.value('@userId', 'INT'),<br />
       Tbl.Col.value('@userName', 'NVARCHAR(50)'),<br />
       Tbl.Col.value('@password', 'NVARCHAR(50)')<br />
FROM   @xml.nodes('//row') Tbl(Col)

SELECT * FROM @tempTable

最初のケースを2番目のケースに変換できますか?または多分別の方法がありますか?

XMLデータのサンプル:

<row>
<userId>1</userId>
<userName>Alpha</userName>
<password>1234</password>
</row>
<row>
<userId>2</userId>
<userName>Beta</userName>
<password>5678</password>
</row>

インポートしようとすると、NULLセルを含む2行のデータテーブルを受け取ります。

4

1 に答える 1

1

あなたが望んでいるのは...?

 SELECT Tbl.Col.value('userId[1]','int'),
 Tbl.Col.value('userName[1]', 'NVARCHAR(50)'),
 Tbl.Col.value('password[1]', 'NVARCHAR(50)')
 FROM @xml.nodes('//row') Tbl(Col)
于 2012-08-16T13:34:17.170 に答える