通过查询导入XML到SQL表时遇错误:不支持的前缀
问题:将XML文件存入SQL时遇到“不支持的前缀”错误
操作流程
- 创建用于存储XML的SQL表:
USE tempdb; CREATE TABLE T1(XmlCol xml); GO
- 执行插入XML文件的命令:
INSERT T1 SELECT CONVERT(xml, BulkColumn, 2) FROM OPENROWSET(Bulk 'C:\Temp\sample.xml', SINGLE_BLOB) [rowsetresults];
遇到的错误
'C:\Temp\sample.xml' contains an unsupported prefix. Retry with supported connector prefix.
错误解析与解决方向
错误含义
该错误表明OPENROWSET(Bulk...)无法识别你使用的文件路径前缀C:\,核心原因是执行环境不支持直接访问此类本地磁盘路径,或是权限/路径格式不符合要求。
解决建议
- 云环境适配:如果是在Azure SQL等云数据库中执行,本地盘符路径完全不可用,需改用云存储路径(如Azure Blob的
https://<存储账户>.blob.core.windows.net/前缀),并配置对应的存储访问权限。 - 本地权限与路径调整:本地SQL Server实例下,确保SQL Server服务账户拥有
C:\Temp\目录的读写权限;同时尝试替换路径为UNC格式,比如\\localhost\C$\Temp\sample.xml。 - 路径有效性检查:确认文件确实存在于
C:\Temp\下,路径无拼写错误、特殊字符或未转义的空格。 - 图形化工具替代:若命令行方式仍有问题,可使用SSMS的“导入数据”向导,选择XML数据源直接导入到目标表,该方式会自动处理路径适配与权限验证。
内容的提问来源于stack exchange,提问作者minty_fresh
相关产品推荐
相关产品推荐

