Ist es möglich, eine tabulatorgetrennte Datei in Sql Server Management Studio abzufragen, um ihre Daten anzuzeigen, ohne sie irgendwo zu speichern?
Ich weiß, dass Sie BULK INSERTaus einer durch Tabulatoren getrennten Datei Folgendes verwenden können:
BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');
Dazu müssen Sie jedoch die Spalten im Voraus kennen und eine Tabelle für die Daten erstellen.
Ich weiß auch, dass Sie einige andere Dateitypen wie CSV oder Excel abfragen können, ohne zuvor die Spalten mit OPENROWSETund die Excel-Treiber zu definieren, z.
-- 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$]')
Wenn ich auf dem SQL Server den Registrierungsschlüssel Formatunter HKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Textvon CSVDelimitedin ändere TabDelimited, liest die obige CSV-Abfrage eine durch Tabulatoren getrennte Textdatei korrekt, eine durch Kommas getrennte Textdatei wird jedoch nicht mehr gelesen, sodass ich nicht glaube, dass ich das möchte es so zu lassen.
Der Versuch, Format=TabDelimitedin der zu verwenden, OPENROWSETfunktioniert auch nicht
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited',
'SELECT * FROM MyFile.txt')
Ich habe einige Versuche unternommen, die TextRegistrierungsschlüssel von den Schlüsseln Enginesund ISAM Formatsin einen benutzerdefinierten TabDelimitedOrdner zu kopieren, der standardmäßig verwendet wird. Es werden jedoch weiterhin Dateien mit CSVFormatanstelle des TabDelimitedFormats gelesen, sodass hier etwas fehlen muss.
Gibt es eine Möglichkeit, eine tabulatorgetrennte Datei abzufragen, um ihren Inhalt anzuzeigen, ohne eine Tabelle erstellen zu müssen BULK INSERT?
Ich verwende SQL Server 2005
.bakkeine normal begrenzte Dateierweiterung, und der Fehler, den ich beim ersten Versuch erhalten habe, ist Could not find installable ISAM, also denke ich nicht, dass dies funktionieren wird.