SQL Server中XML数据处理的全面解析
1. OPENXML与OPENROWSET的使用
在处理XML数据时,我们会接触到一些传统的工具,比如OPENXML和OPENROWSET。
对于OPENXML查询,并不强制要求定义显式模式。不过,如果不定义,SQL Server会使用默认的“边缘表”格式,这种格式包含的信息可能远超我们的需求,还可能以我们不期望的方式拆分数据。所以,若想更好地控制OPENXML的结果,建议尽可能定义自己的显式模式。
虽然在维护遗留代码或在旧版SQL Server 2000系统中查询XML时,OPENXML是一项有用的知识,但它的功能已被SQL Server 2008的xml数据类型方法所取代。这些方法通过更强大的XQuery语言,在查询XML数据时提供了更好的控制、灵活性和易用性。
OPENROWSET是一个行集提供程序,它可以将指定文件系统中的文件内容导入到SQL Server中。下面我们重点介绍如何使用它从辅助存储中加载XML数据。
OPENROWSET作为行集提供程序,会将指定数据文件的内容作为关系行集返回。通过指定SINGLE_BLOB、SINGLE_CLOB或SINGLE_NCLOB,可以将整个文件分别作为二进制大对象(BLOB)、字符大对象(CLOB)或国家字符大对象(NCLOB)返回在单个列中。
以下是使用OPENROWSET行集提供程序将示例XML文件加载到SQL Server xml变量的代码示例:
DECLARE @x xml;
SELECT @x = xCol.BulkColumn
FROM