使用OPENROWSET(BULK)导入数据出现语法错误,请求排查问题原因
问题:SQL语句执行报错原因分析
我执行了以下SQL代码:
SELECT * FROM master.initial; INSERT master.initial (IDSUBJECT ,IDTEACHER , Initial) SELECT '1', '1', Initial. * FROM OPENROWSET (BULK 'C:\docs\diplom\data.docx', SINGLE_BLOB) Initial;
执行后出现语法错误,错误截图如下:
该代码来源于某SQL Server相关技术博客,请问问题出在哪里?
错误原因分析
问题出在SELECT '1', '1', Initial. *这一行:
- 使用
OPENROWSET(BULK ... SINGLE_BLOB)读取文件时,返回的结果集仅有一列,列名为BulkColumn,不能用表别名加*的方式引用这一列,SQL Server无法识别这种写法。
修正后的代码
将Initial. *替换为Initial.BulkColumn即可:
SELECT * FROM master.initial; INSERT master.initial (IDSUBJECT ,IDTEACHER , Initial) SELECT '1', '1', Initial.BulkColumn FROM OPENROWSET (BULK 'C:\docs\diplom\data.docx', SINGLE_BLOB) Initial;
内容的提问来源于stack exchange,提问作者aybb_2000
相关产品推荐
相关产品推荐

