2010-05-11 8 views
1

J'ai un problème avec cette requête:problème avec SQL de mise à jour avec Excel

UPDATE Provinces 
SET Provinces.DefaultName=T2.Defaultname 
FROM Provinces 
INNER JOIN 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\provinces.xlsx;HDR=YES', 
       'SELECT Code, Defaultname FROM [Arkusz1$]') T2 
    On Provinces.Code = t2.Code 
WHERE Provinces.Code = T2.Code 

J'obtiens l'erreur:

Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" reported an error. The provider did not give any information about the error. Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

Quelle est la source de cette erreur, et comment puis-je modifier le SQL déclaration?

+0

est-il fichier Excel configuré en tant que serveur lié? – volody

+0

non, c'est un simple xlsx – user278618

+0

Parfois, je fais juste une copie des cellules sélectionnées dans un presse-papiers et les colle dans une table ouverte en utilisant SQL Server Management Studio, mais vous devez avoir des colonnes dans le même ordre – volody

Répondre

1

Il existe plusieurs causes possibles de ce détail ici: Linked Server using Microsoft.Jet.OLEDB.4.0 problem.

A est probablement la cause Permissions système de fichiers du répertoire temporaire pour la connexion de service SQL pour celui qui accède à ce serveur lié: C:\Documents and Settings\(sql login name)\Local Settings\Temp

Questions connexes