我需要将 xml 文件导入 Microsoft SQL Server 数据库。我有一个 xml 架构文件 ( .xsd
),其中包含要导入的 xml 文件的映射信息。xml 文件中的每个有效数据行都需要导入到具有多列的数据库表行中。
最初我使用SQLXMLBulkLoad
(非事务模式 - 指定数据库连接字符串)来完成这项工作,它工作得很好,但是,有一个新要求需要我在使用的同一个数据库连接上执行一个存储过程SQLXMLBulkLoad
。此存储过程的目的是将连接与当前用户的特定 ID 绑定,因为可能有多个用户同时导入 xml 文件。所以我必须改用事务模式(- 指定数据库连接而不是连接字符串SQLXMLBulkLoad
),这会在远程环境下引入众所周知的共享问题。如果 xml 文件是本地的并且数据库服务器是远程的,我需要创建一个共享文件夹SQLXMLBulkLoad
才能工作。这很糟糕,但可以做到。
问题是我们的客户不接受共享文件夹的东西,所以我需要一个更好的解决方案来满足新要求而没有共享问题。
我已经用 Google 搜索了一段时间,找到了一种可能有效的解决方案 - SqlBulkCopy
,但我无法解析架构文件 ( .xsd
),因为它包含许多xml-db:table
映射信息。
任何想法将不胜感激。