2012-08-16 116 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

相关问题