XML到Sql Server

And*_*rew 1 xml sql sql-server

我试图将xml文件导入sql server但尚未成功.
xml文件的结构如下:

<Users xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
  <User>
    <PartitionKey>be-BY</PartitionKey>
  </User>
</Users>  
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

   SELECT 
    xmldata.value('(PartitionKey)[1]', 'NCHAR(10)') AS 'partition_key'  
FROM 
    (SELECT CAST(x AS XML)
     FROM OPENROWSET(
        BULK 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\SkillageXML\userstest1111.xml',
        SINGLE_BLOB
        ) 
        AS T(x)
    )  AS T(x)
CROSS APPLY 
    x.nodes('/Users/User') AS X(xmldata);
Run Code Online (Sandbox Code Playgroud)

但是,在处理完文件后,我看不到任何值.有什么遗漏?

mar*_*c_s 6

这对我来说就像一个魅力:

SELECT 
    XUsers.value('(PartitionKey)[1]', 'NCHAR(10)') AS 'partition_key'  
FROM 
    (SELECT 
        BulkXML = CAST(BulkColumn AS XML)
     FROM 
        OPENROWSET(BULK 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\SkillageXML\userstest1111.xml', SINGLE_BLOB) AS BX 
    ) AS T
CROSS APPLY 
    BulkXml.nodes('/Users/User') AS XTbl(XUsers);and returns:

partition_key
be-BY     
Run Code Online (Sandbox Code Playgroud)

我认为你使用 AS T(x)别名的方法两次导致混淆 - 尝试使用更有意义的东西而不是两个东西的相同别名.

  • 使用[INSERT INTO ... SELECT FROM](http://msdn.microsoft.com/en-us/library/ms188263(v = sql.105).aspx) (2认同)