Domanda

Sto avendo un problema con il mio 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

quando si tenta di eseguire questo, genera questo errore:

Msg 7357, livello 16, stato 2, riga 1 Impossibile elaborare l'oggetto "SELECT      Numero di cellulare,      Cognome,   Nome di battesimo    FROM [SampleData $]". Il provider OLE DB 'Microsoft.Jet.OLEDB.4.0' per il server collegato '(null)' indica che sia l'oggetto non ha colonne o l'utente corrente non dispone delle autorizzazioni su quell'oggetto.

C'è qualche soluzione per questo? Io davvero non riesco a trovare alcuna negli ultimi 3 ore .. In sostanza, voglio solo per manipolare i dati da un file Excel, quindi salvarlo database SQL Server 2005, ma per ora, voglio recuperare i dati dal file Excel per SQL server .. grazie per l'aiuto ..

È stato utile?

Soluzione

Ho ottenuto questo al lavoro con un foglio di calcolo a livello locale. dimenticare OPENROWSET

  1. Creare un intervallo denominato nel vostro spreadheet excel. Tio fare questo, evidenziare le colonne (tra cui le intestazioni) che si desidera, fare clic destro e selezionare 'nome di una gamma'. Dare a questo un nome, questo sarà il vostro nome della tabella.

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

  2. Salvare e chiudere il foglio di calcolo. SQL Server non sarà in grado di accedervi, se si hve aperto.

  3. Aggiungi un server collegato. Seguire le istruzioni in Sezione E di seguito che ti dice come aggiungere un server collegato per fogli di calcolo Excel:

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

  4. Si dovrebbe essere in grado di interrogare il DS tranquillamente, sempre seguendo le istruzioni.

Ecco il codice che funziona per me:

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

SELECT *
   FROM ExcelSource4...MyTable2;

E infine. Iniziare ad accettare alcune risposte e votare eventuali quelli utili. Questa è la linfa vitale di StackOverflow.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top