2010-12-14 2 views
2

ich ein Problem mit meinem SQL-Skript mit:Fehler auf SQL-Skript mit '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 

wenn ich versuche, dies auszuführen, erzeugt es diesen Fehler:

Msg 7357, Ebene 16 , Status 2, Zeile 1 Das Objekt "SELECT MobileNumber, Nachname, Vorname FROM [SampleData $]" kann nicht verarbeitet werden. Der OLE DB-Anbieter "Microsoft.Jet.OLEDB.4.0" für den Verbindungsserver "(null)" gibt an, dass entweder das Objekt keine Spalten enthält oder der aktuelle Benutzer keine Berechtigungen für dieses Objekt besitzt.

Gibt es dafür eine Lösung? Ich kann wirklich keine in den letzten 3 Stunden finden .. Grundsätzlich möchte ich nur Daten aus einer Excel-Datei zu manipulieren, dann speichern Sie es in SQL Server 2005-Datenbank, aber für den Moment möchte ich Daten aus der Excel-Datei abrufen der sql server .. danke für die hilfe ..

+0

habe ich bereits getan. Danke, dass du mich erinnert hast. :) – iceheaven31

Antwort

1

Ich habe das mit einer Tabelle lokal zu arbeiten. vergessen OPENROWSET

  1. Erstellen Sie einen benannten Bereich in Ihrer Excel-Tabelle. Tio tun, markieren Sie die Spalten (einschließlich der Header), klicken Sie mit der rechten Maustaste und wählen Sie "Einen Bereich benennen". Geben Sie diesem einen Namen, dies wird Ihr Tabellenname sein.

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

  2. speichern und Ihre Tabelle schließen. SQL Server kann nicht auf es zugreifen, wenn Sie es geöffnet haben.

  3. Fügen Sie einen Verbindungsserver hinzu. Folgen Sie den Anweisungen in Abschnitt E in der folgenden, die Ihnen sagt, wie eine verknüpfte Server für Excel-Tabellen hinzuzufügen:

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

  4. sollten Sie in der Lage sein, die DS ganz glücklich abfragen, wieder den Anweisungen folgen.

Hier ist der Code, der für mich funktioniert:

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

SELECT * 
    FROM ExcelSource4...MyTable2; 

Und schließlich. Fangen Sie an, einige Antworten zu akzeptieren und irgendwelche hilfreichen zu wählen. Dies ist der Lebensnerv von StackOverflow.

+0

dieser hat funktioniert! Danke vielmals! – iceheaven31