这是有效的:
SELECT *
FROM OPENROWSET('MSDASQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; Extended Properties="text; HDR=YES; FMT=Delimited"','SELECT * FROM E:\folder\subfolder\myfile.txt')
由于白色空格,这不起作用:
SELECT *
FROM OPENROWSET('MSDASQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; Extended Properties="text; HDR=YES; FMT=Delimited"','SELECT * FROM E:\folder\sub folder\my file.txt')
我试过双打引号(“...”)和[...]
提前感谢您的提示
答案 0 :(得分:2)
query
专门针对DefaultDir
(强调我的):
'query'
是否向提供程序发送并执行字符串常量。 SQL Server的本地实例不处理此查询,但处理提供程序返回的查询结果,即传递查询。 [...]
换句话说,这不是由于SQL Server导致此传递查询无效。
以下两个示例使用提供程序字符串中的SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; Extended Properties="text; HDR=YES; FMT=Delimited"; DefaultDir=E:\folder\sub folder;','SELECT * FROM [my file#txt]');
属性,并且应该使您的语句起作用:
SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; Extended Properties="text; HDR=YES; FMT=Delimited"; DefaultDir=E:\folder\sub folder;','SELECT * FROM "my file.txt"');
或者
{{1}}