是否可以从Sql Server Management Studio查询制表符分隔的文件以查看其数据,而无需将其保存在任何地方?
我知道您可以BULK INSERT
使用制表符分隔的文件,例如:
BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');
但是,这需要您事先知道各列并创建一个表来保存数据。
我也知道您可以查询其他一些文件类型,例如CSV或Excel,而无需使用OPENROWSET
和Excel驱动程序预先定义列,例如:
-- Query CSV
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;',
'SELECT * FROM MyFile.csv')
-- Query Excel
SELECT *
FROM OPENROWSET('Microsoft.Ace.OLEDB.12.0',
'Excel 8.0;Database=MyFile.xls',
'SELECT * FROM [Sheet1$]')
另外,如果我更改注册表项Format
下HKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Text
从CSVDelimited
到TabDelimited
SQL Server上,上面的CSV查询将正确读取制表符分隔的文本文件,但是它将不再读取逗号分隔的文本文件,所以我不认为我想留下那样
尝试使用Format=TabDelimited
中OPENROWSET
也不起作用
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited',
'SELECT * FROM MyFile.txt')
我已经尝试过将Text
注册表项从Engines
和都复制ISAM Formats
到默认为的自定义项TabDelimited
,但是它仍在读取文件CSVFormat
而不是TabDelimited
格式,因此我在这里必定会丢失一些内容。
有没有一种方法可以查询制表符分隔的文件以查看其内容,而无需创建表及其文件BULK INSERT
?
我正在使用SQL Server 2005
.bak
不是普通的带分隔符的文件扩展名,并且在我第一次尝试时给我的错误是Could not find installable ISAM
,因此我认为这不会起作用。