

新闻资讯
技术学院可使用OPENROWSET、SSIS或临时表方法将XML文件导入SQL Server。1. OPENROWSET通过T-SQL读取XML并解析插入;2. SSIS适用于复杂结构和大批量数据,支持转换与调度;3. 临时表法便于预处理;需注意权限、编码、路径及XML格式正确性。
将XML文件导入SQL Server数据库可以通过多种方式实现,最常用的是使用 SQL Server 的 T-SQL 命令(如 OPENROWSET 或 BULK INSERT 配合 XSD 架构)或通过 SQL Server Integration Services (SSIS)。下面介绍几种实用方法,帮助你把 XML 文件中的数据导入到 SQL Server 数据库中。
你可以使用 T-SQL 中的 OPENROWSET 函数直接从本地或网络路径读取 XML 文件,并结合 .value()、.nodes() 等 XML 方法提取数据。
示例:假设有一个 XML 文件 test.xml 内容如下:1 张三 252 李四 30
在 SQL Server 中执行以下语句导入数据:
DECLARE @xmlData XML SELECT @xmlData = BulkColumn FROM OPENROWSET(BULK 'C:\temp\test.xml', SINGLE_BLOB) AS xINSERT INTO Person (ID, Name, Age) SELECT T.c.value('(ID)[1]', 'INT') AS ID, T.c.value('(Name)[1]', 'NVARCHAR(50)') AS Name, T.c.value('(Age)[1]', 'INT') AS Age FROM @xmlData.nodes('/Root/Person') AS T(c)
注意:

EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;
对于复杂的 XML 结构或大批量数据,推荐使用 SQL Server Integration Services (SSIS)。
操作步骤:适用于需要预处理或验证的场景。
-- 创建临时表存储原始 XML CREATE TABLE #XmlImport (XmlData XML)-- 读取文件 INSERT INTO #XmlImport SELECT * FROM OPENROWSET( BULK 'C:\temp\test.xml', SINGLE_BLOB ) AS xmlfile
-- 解析并插入目标表 INSERT INTO Person (ID, Name, Age) SELECT T.c.value('(ID)[1]', 'INT'), T.c.value('(Name)[1]', 'NVARCHAR(50)'), T.c.value('(Age)[1]', 'INT') FROM #XmlImport CROSS APPLY XmlData.nodes('/Root/Person') AS T(c)
-- 清理 DROP TABLE #XmlImport
基本上就这些。根据你的数据量和结构复杂度选择合适的方法即可。