Quelqu'un peut-il conseiller comment insérer en bloc du fichier .xlsx
?
J'ai déjà essayé la requête ci-dessous:
BULK INSERT #EVB FROM 'C:\Users\summer\Desktop\Sample\premise.xlsx'
WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2);
SELECT * FROM #EVB
J'ai aussi essayé avec FIELDTERMINATOR like "**\t**", "**,**", "**;**", "**|**"
, mais cela ne fonctionne pas non plus.
Malheureusement, il n'y a pas de message d'erreur.
vous pouvez enregistrer le fichier xlsx en tant que fichier texte délimité par des tabulations et
BULK INSERT TableName
FROM 'C:\SomeDirectory\my table.txt'
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
GO
Vous devez utiliser OPENROWSET
Cochez cette question: import-Excel-tableur-colonnes-dans-base-serveur-SQL
Créer un serveur lié à votre document
http://www.Excel-sql-server.com/Excel-import-to-sql-server-using-linked-servers.htm
Puis utilisez ordinaire INSERT ou SELECT INTO. Si vous voulez avoir du chic, vous pouvez utiliser SqlBulkCopy d'ADO.NET, qui prend à peu près toutes les sources de données desquelles vous pouvez obtenir un DataReader et est assez rapide lors de l'insertion, bien que la lecture des données ne soit pas très rapide.
Vous pouvez également prendre le temps de transformer une feuille de calcul Excel en un fichier délimité par du texte ou en un autre format pris en charge par bcp , puis d’utiliser BCP.
Cela peut être fait à l'aide de Assistant d'importation et d'exportation SQL Server. Mais si vous connaissez SSIS et ne souhaitez pas exécuter l'Assistant d'importation et d'exportation SQL Server, créez un package SSIS utilisant la source Excel et la destination SQL Server dans le flux de données.