可使用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 内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Person>
<ID>1</ID>
<Name>张三</Name>
<Age>25</Age>
</Person>
<Person>
<ID>2</ID>
<Name>李四</Name>
<Age>30</Age>
</Person>
</Root>
在 SQL Server 中执行以下语句导入数据:
DECLARE @xmlData XML
SELECT @xmlData = BulkColumn
FROM OPENROWSET(BULK 'C:\temp\test.xml', SINGLE_BLOB) AS x
<p>INSERT 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)</p>注意:
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)
<p>-- 读取文件
INSERT INTO #XmlImport
SELECT * FROM OPENROWSET(
BULK 'C:\temp\test.xml',
SINGLE_BLOB
) AS xmlfile</p><p>-- 解析并插入目标表
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)</p><p>-- 清理
DROP TABLE #XmlImport</p>基本上就这些。根据你的数据量和结构复杂度选择合适的方法即可。
以上就是xml文件如何导入到sql数据库 sql server导入xml数据的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号