Est-il possible d'interroger un fichier délimité par des tabulations à partir de Sql Server Management Studio pour afficher ses données sans les enregistrer n'importe où?
Je sais que vous pouvez à BULK INSERTpartir d'un fichier délimité par des tabulations en utilisant quelque chose comme:
BULK INSERT SomeTable
FROM 'MyFile.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n');
cependant, cela nécessite que vous connaissiez les colonnes à l'avance et que vous créiez une table pour contenir les données.
Je sais également que vous pouvez interroger d'autres types de fichiers tels que CSV ou Excel sans définir à l'avance les colonnes à l'aide de OPENROWSETet les pilotes Excel, tels que:
-- 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$]')
De plus, si je modifie la clé de Registre Formatsous HKLM\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Textde CSVDelimitedà TabDelimitedsur sur SQL Server, la requête CSV ci-dessus lira correctement un fichier texte délimité par des tabulations, mais elle ne lira plus un fichier texte délimité par des virgules, donc je ne pense pas que je veux de le laisser comme ça.
Tenter d'utiliser Format=TabDelimiteddans le OPENROWSETne fonctionne pas non plus
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Text;Database=\\Server\Folder\;HDR=Yes;Format=TabDelimited',
'SELECT * FROM MyFile.txt')
J'ai tenté de copier les Textclés de registre des clés Engineset ISAM Formatsvers quelque chose de personnalisé par défaut TabDelimited, mais il lit toujours les fichiers avec CSVFormatau lieu du TabDelimitedformat, donc je dois manquer quelque chose ici.
Existe-t-il un moyen d'interroger un fichier délimité par des tabulations pour afficher son contenu sans avoir à créer une table et BULK INSERTlui?
J'utilise SQL Server 2005
.bakce qui n'est pas une extension de fichier délimitée normale, et l'erreur qu'elle m'a donné lors de mon premier essai est Could not find installable ISAM, donc je ne pense pas que cela fonctionnera.