web-dev-qa-db-fra.com

Déplacement de données d'Excel vers une table SQL Server

J'ai une feuille Excel très simple:

enter image description here

Je veux mettre ces données dans une table dans SQL Server. Je voulais aussi ajouter un champ qui contient une date. 

quelle est la meilleure façon de procéder?

9
jth41

Créez une table dans SQL Server avec le même nombre de champs que dans la feuille de calcul. 

Dans l'explorateur d'objets de SQL Server Management Studio, vous pouvez cliquer avec le bouton droit de la souris sur la table que vous avez créée et sélectionner "Editer les 200 premières lignes". Mettez en surbrillance les données que vous souhaitez copier dans Excel et faites un clic droit -> copier. Cliquez avec le bouton droit de la souris sur l'espace situé à gauche de la première ligne du panneau d'édition SSMS Veuve et coller.

Après l'importation, vérifiez la table SQL pour vous assurer qu'elle contient le même nombre de lignes que la feuille de calcul.

Vous pouvez ajouter la colonne de date à la table SQL après avoir importé les données. Ou ajoutez-le dans la feuille de calcul avant d'importer.

10
Travis

Vous pouvez d'abord créer la table dans SQL Server avec le champ ajouté, puis utiliser l'assistant d'importation dans Mangement Studio pour importer le fichier Excel. Ou vous créez la table lors de la tâche d'importation et vous ajoutez le nouveau champ ultérieurement.

6
OliC

Option 1:

Lisez les données dans un IDataReader, puis appelez une procédure stockée pour insérer les données.

http://granadacoder.wordpress.com/2009/01/27/bulk-insert-example-using-an-idatareader-to-strong-dataset-to-sql-server-xml/

J'utilise ce qui précède lorsque j'ai ~ ~ beaucoup ~ ~ de lignes à importer et que je souhaite les valider en dehors de la base de données.

Option 2:

http://support.Microsoft.com/kb/321686

ou rechercher:

Select  FROM OPENDATASOURCE Excel

Option N:

Il existe d'autres options.

Cela dépend de ce que vous aimez, combien de temps vous voulez y consacrer, est-ce un "one off" ou faut-il le faire pour 333 fichiers par jour?.

2
granadaCoder

Ma solution était de convertir .xlsx en .csv, puis d’utiliser ce site pour convertir .csv en .sql. J'ai ensuite exécuté le fichier SQL sur le serveur SQL et généré mes tables.

1
Mike

Cela peut également être fait en créant un fichier de commandes.

Pour cela, vous devez déjà avoir créé une table sur le serveur avec la même structure de données que dans Excel.

Maintenant, en utilisant BCP, vous pouvez importer ces données à partir du fichier Excel et les insérer dans une table SQL.

Fonction utilitaire BCP

sqlcmd -S IP -d databasename -U username -P passwd -Q "SQL query mostly it should be truncate query to truncate the created table"
bcp databasename.dbo.tablename in "Excel file path from where you need to input the data" -c -t, -S Server_IP -U Username -P passwd -b provide batch size

Vous pouvez vous référer au lien ci-dessous pour plus d'options sur l'utilitaire bcp:

https://msdn.Microsoft.com/en-IN/library/ms162802.aspx

0
Bond_007