Importer des données de feuille de calcul Excel dans une table SQL EXISTANTE?
J'ai une table appelée tblAccounts dont le contenu provient de la feuille de calcul excel.
Je suis à l'aide de MS SQL Server 2008 (x64) Windows 8.1 (x64)
J'ai essayé à l'aide de SQL Server Assistant d'Importation/Exportation, mais il n'y a pas d'option pour choisir une table existante, mais seulement une option pour créer un nouveau.
J'ai essayé d'utiliser d'autres méthodes telles que OPENROWSETS
INSERT INTO tblAccount SELECT * FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0',
'Excel 12.0;Database=D:\exceloutp.xls','SELECT * FROM [Sheet1$]')
mais m'a donné une erreur:
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.
Quelques recherches m'a dit qu'elle s'est produite en raison d'un 64bit instance de SQL server.
Le problème est que ce excel de transfert de données d'une table SQL doit être accompli à l'aide de SQL Assistant d'Importation/Exportation seulement.
Comment puis-je importer une feuille de calcul excel à une table SQL sans en créer une nouvelle?
Merci!
Quelques liens que j'ai visité, mais n'a pas été en mesure de m'aider à résoudre mon problème:
Comment puis-je importer une feuille de calcul excel dans SQL Server?
Correction de l'erreur OLE DB
source d'informationauteur Saudate
Vous devez vous connecter pour publier un commentaire.
Saudate, je couru à travers cette recherche d'un autre problème. Vous avez très certainement pouvez utiliser Sql Server assistant d'Importation pour importer des données dans une nouvelle table. Bien sûr, vous ne voulez pas quitter la table dans la base de données, donc mon suggère, c'est que vous l'importer dans une nouvelle table, puis un script de données dans le gestionnaire de requête à insérer dans le tableau existant. Vous pouvez ajouter une ligne à la chute de la table temporaire créée par l'assistant d'importation comme la dernière étape après la réussite du script.
Je crois que votre problème d'origine est en fait lié à Sql Server 64 bits et est due à votre avoir un 32 bits d'Excel et de ces pilotes n'est pas de bien jouer ensemble. Je n'ai couru dans un problème similaire lors de la première utilisation 64 bits d'excel.
Vous pouvez copier-coller des données à partir de fr excel-feuille SQL-table en procédant ainsi:
Remarque: Souvent, les tableaux ont une première colonne qui est un ID-colonne avec une génération automatique/incrémenté ID. Lorsque vous collez vos données, il va commencer à insérer le plus à gauche colonne sélectionnée dans Excel dans la colonne la plus à gauche dans SSMS ainsi, l'insertion de données dans l'ID de la colonne. Pour éviter que de garder une colonne vide à la partie droite de votre sélection dans le but de sauter cette colonne dans SSMS. Ce sera le résultat de SSMS insérant les données par défaut qui est la génération automatique d'ID.
En outre, vous pouvez ignorer les autres colonnes en ayant des colonnes vides dans les mêmes positions ordinales dans la feuille Excel de sélection que ceux des colonnes pour être ignorée. Qui fera de SSMS insérer la valeur par défaut (ou NULL lorsque aucune valeur n'est spécifiée).
Vous pouvez utiliser importer des données avec l'assistant et là, vous pouvez choisir la table de destination.
L'exécution de l'assistant. Dans la sélection de la source des tables et des vues de la fenêtre, vous voyez deux parties. La Source et la Destination.
Cliquez sur le champ en vertu de la partie Destination pour ouvrir la liste déroulante et sélectionnez-vous de la table de destination et de modifier ses mappages si nécessaire.
Si vous souhaitez un outil logiciel pour ce faire, vous aimeriez jeter un oeil à cette étape-par-étape:
"Comment Valider et d'Importation de feuille de calcul Excel en base de données SQL Server"
http://leansoftware.net/forum/en-us/help/excel-database-tasks/worked-examples/how-to-import-excel-spreadsheet-to-sql-server-data.aspx