2010-12-14 30 views
2

Je vais avoir un problème avec mon script SQL:sur le script SQL avec 'openrowset'

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 

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

Msg 7357, niveau 16 , État 2, ligne 1 Impossible de traiter l'objet "SELECT MobileNumber, Nom, Prénom FROM [SampleData $]". Le fournisseur OLE DB "Microsoft.Jet.OLEDB.4.0" pour le serveur lié "(null)" indique que l'objet n'a pas de colonnes ou l'utilisateur actuel n'a pas d'autorisations sur cet objet.

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

+0

Je l'ai déjà fait. Merci de me le rappeler. :) – iceheaven31

Répondre

1

J'ai obtenu ceci pour travailler avec une feuille de calcul localement. oublier OPENROWSET

  1. Créez une plage nommée dans votre feuille de calcul Excel. Pour ce faire, sélectionnez les colonnes (y compris les en-têtes) souhaitées, cliquez avec le bouton droit de la souris et sélectionnez «Nommez une plage». Donnez-lui un nom, ce sera votre nom de table.

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

  2. Enregistrez et fermez votre feuille de calcul. SQL Server ne pourra pas y accéder si vous l'avez ouvert.

  3. Ajouter un serveur lié. Suivez les instructions Section 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 heureux, suivant à nouveau les instructions.

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 certaines réponses et votez pour celles qui vous sont utiles. C'est l'âme de StackOverflow.

+0

celui-ci a fonctionné! Merci beaucoup! – iceheaven31