【问题标题】:Why SQL OpenXML isn't supported in SQL Azure?为什么 SQL Azure 不支持 SQL OpenXML?
【发布时间】:2017-09-26 04:28:14
【问题描述】:

为什么 SQL Azure 不支持 SQL OpenXML?我们可以在 SQL Azure 中使用哪些替代方案?最后,SQL OpenXML 会在即将推出的 SQL 版本中被弃用吗?

【问题讨论】:

标签: sql azure-sql-database


【解决方案1】:

【讨论】:

【解决方案2】:

这一定在某个时候发生了变化。从 9.25.2017 开始,openxml 在 SQL Azure 中运行良好。我刚刚在 SQL Azure DB 上从https://docs.microsoft.com/en-us/sql/relational-databases/xml/examples-using-openxml 运行了以下示例,它产生了显示的结果:

DECLARE @DocHandle int  
DECLARE @XmlDocument nvarchar(1000)  
SET @XmlDocument = N'<ROOT>  
<Customer CustomerID="VINET" ContactName="Paul Henriot">  
   <Order OrderID="10248" CustomerID="VINET" EmployeeID="5"   
          OrderDate="1996-07-04T00:00:00">  
      <OrderDetail ProductID="11" Quantity="12"/>  
      <OrderDetail ProductID="42" Quantity="10"/>  
   </Order>  
</Customer>  
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">  
   <Order OrderID="10283" CustomerID="LILAS" EmployeeID="3"   
          OrderDate="1996-08-16T00:00:00">  
      <OrderDetail ProductID="72" Quantity="3"/>  
   </Order>  
</Customer>  
</ROOT>'  
-- Create an internal representation of the XML document.  
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument  
-- Execute a SELECT statement using OPENXML rowset provider.  
SELECT *  
FROM OPENXML (@DocHandle, '/ROOT/Customer',1)  
      WITH (CustomerID  varchar(10),  
            ContactName varchar(20))  
EXEC sp_xml_removedocument @DocHandle  

输出:

CustomerID  ContactName
VINET   Paul Henriot
LILAS   Carlos Gonzlez

这里没有列出 OPENXML:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-transact-sql-information#transact-sql-syntax-not-supported-in-sql-database

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 2013-01-18
    • 2018-10-11
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多