2012-08-16 171 views
1

我有XML數據庫,我需要導出到SQL Server數據庫。 所以,我可以導出xml,如:tag =「value」 但是我的XML是:<tag>value</tag>tag =「value」and <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 

我能第一種情況轉換爲第二種情況? 或者也許有另一種方式?

示例XML數據:

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

當我嘗試導入它,我得到的數據表2行與空細胞。

+0

如果您發佈了一個xml數據樣本,這將有所幫助。 – 2012-08-16 13:27:20

回答

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) 
+0

謝謝!這是我需要的。 – 2012-08-16 13:56:29

相關問題