É possível consultar um arquivo delimitado por tabulações no Sql Server Management Studio para visualizar seus dados sem salvá-los em qualquer lugar?
Eu sei que você pode BULK INSERT
de um arquivo delimitado por tabulações usando algo como:
BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');
no entanto, isso exige que você conheça as colunas com antecedência e crie uma tabela para armazenar os dados.
Também sei que você pode consultar outros tipos de arquivos, como CSV ou Excel, sem definir as colunas com antecedência, usando OPENROWSET
os drivers do Excel, como:
-- 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$]')
Além disso, se eu mudar a chave de registro Format
sob HKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Text
a partir CSVDelimited
de TabDelimited
sobre o SQL Server, a consulta CSV acima irá ler corretamente um arquivo de texto delimitado por tabulação, no entanto, ele não irá ler um arquivo de texto separado por vírgulas para que eu não acho que eu quero para deixar assim.
Tentar usar Format=TabDelimited
no OPENROWSET
também não funciona
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited',
'SELECT * FROM MyFile.txt')
Fiz algumas tentativas para copiar as Text
chaves de registro de ambos os Engines
e ISAM Formats
chaves para algo personalizado que o padrão é TabDelimited
, no entanto, é ainda leitura de arquivos com CSVFormat
em vez de TabDelimited
formato de modo que deve estar faltando alguma coisa aqui.
Existe uma maneira de consultar um arquivo delimitado por tabulação para exibir seu conteúdo sem ter que criar uma tabela BULK INSERT
?
Estou usando o SQL Server 2005
.bak
não é uma extensão delimitada normal e o erro que ele me deu na primeira tentativa é Could not find installable ISAM
, portanto, não acho que isso funcione.