MICROSOFT.ACE.OLEDB.12.0 du serveur lié

MICROSOFT.ACE.OLEDB.12.0 du serveur lié

Comme j'ai besoin d'importer des fichiers CSV avec SQL Serveur et OPENROWSET, j'ai besoin d'installer l'accès Access sur le serveur. 

disponible ici et prendre la version 64 bits. 

Paramétrage

Suite à l'installation il faut paramétrer son usage 

Cela va me servir pour faire des tests de droits sur le dossier d'import. 


EXEC sp_configure 'xp_cmdshell', 1;

GO

RECONFIGURE;

go

Activation du composant 


USE [master]

GO

sp_configure 'show advanced options', 1

reconfigure

GO

sp_configure 'Ad Hoc Distributed Queries', 1

reconfigure


EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1

GO

EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1

GO


Le Test


Vérification d'accès au dossier d'import de fichier 
exec master..xp_cmdshell 'dir E:\dossier\' 

et test d'import d'un fichier 

select * from
OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0', 'Text;Database=E:\dossier\;HDR=YES', 'SELECT * FROM fichier.csv' )  

Message d'erreur 


Le fournisseur OLE DB "MICROSOFT.ACE.OLEDB.12.0" du serveur lié "(null)" a retourné le message "Erreur non spécifiée"

Si vous n'êtes pas en session administrateur, vous pouvez avoir besoin de mettre les droits sur le dossier temporaire 

J'ai simplement ajouter le groupe utilisateurs avec CT sur le dossier C:\Users\<SQL Server Service Account>\AppData\Local\Temp