Question

Je suis un problème avec mon script SQL:

SELECT  
  SP.[MobileNumber],  
  SP.[LastName],  
  SP.[FirstName]  
FROM SampleTable1 SP  
INNER JOIN OPENROWSET  
(  
  'Microsoft.Jet.OLEDB.4.0',  
  'Excel 8.0;Database=C:\devpc11\sample.xls;',  
  'SELECT   
     MobileNumber,   
     LastName,  
     FirstName  
   FROM [SampleData$]') T  
ON SP.[MobileNumber] = T.[MobileNumber]  
GO

quand je tente d'exécuter cela, il génère cette erreur:

Msg 7357, niveau 16, état 2, ligne 1 Ne peut pas traiter l'objet « SELECT      Numéro de portable,      Nom de famille,   Prénom    DE [SampleData $] ». Le fournisseur OLE DB « Microsoft.Jet.OLEDB.4.0 » pour le serveur lié « (null) » indique que soit l'objet n'a pas de colonnes ou l'utilisateur actuel ne dispose pas des autorisations sur cet objet.

Y at-il une solution pour cela? Je ne peux pas trouver dans les 3 dernières heures .. En fait, je veux juste manipuler des données à partir d'un fichier Excel, puis enregistrez-le au serveur sql base de données 2005, mais pour l'instant, je veux récupérer des données à partir du fichier Excel le serveur SQL .. merci pour l'aide ..

Était-ce utile?

La solution

Je suis arrivé que cela fonctionne avec une feuille de calcul locale. oublier OPENROWSET

  1. Créer une plage nommée dans votre spreadheet Excel. Tio faire, mettez en surbrillance les colonnes (y compris les en-têtes) que vous voulez, faites un clic droit et sélectionnez "Nom d'une plage. Donnez ce nom, ce sera votre nom de la table.

    http://www.homeandlearn.co.uk/me/mes9p2.html

  2. Enregistrer et fermer votre feuille de calcul. SQL Server ne sera pas en mesure d'y accéder si vous HVE ouvert.

  3. Ajouter un serveur lié. Suivez les instructions E dans ce qui suit qui vous indique comment ajouter un serveur lié pour Excel Spreadsheets:

    http://msdn.microsoft.com/en-us/library/ ms190479.aspx

  4. Vous devriez être en mesure d'interroger la DS tout à fait heureusement, suivant les instructions de nouveau.

Voici le code qui fonctionne pour moi:

EXEC sp_addlinkedserver 'ExcelSource4',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   'c:\sqlss.xls',
   NULL,
   'Excel 5.0';
GO

SELECT *
   FROM ExcelSource4...MyTable2;

Et enfin. Commencez à accepter des réponses et le vote en tout les utiles. Ceci est l'élément vital de StackOverflow.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top