Quelqu'un peut-il m'aider?
BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
FIELDTERMINATOR = ' ',
rowterminator = '\n',
tablock
)
L'erreur indique, impossible d'ouvrir:
Impossible d'insérer en bloc car le fichier '\ SERVERNAME \ FOLDERNAME \ textFile.txt' n'a pas pu être ouvert. Code d'erreur 5 du système d'exploitation (l'accès est refusé.)
Le chemin se trouve sur un autre ordinateur du réseau.
sql-server
bulk-insert
Jonas Ivy V. Imperial
la source
la source
'\\COMPUTER01\FOLDER01\TextFile.txt'
? Notez que le compte sera généralement différent de votre compte.Réponses:
Je vais faire un acte de foi et supposer que vous vous connectez à SQL Server à l'aide de l'authentification Windows. Dans un tel cas, vous avez un double saut Kerberos: un saut est votre application cliente se connectant à SQL Server, un deuxième saut est le SQL Server se connectant à la télécommande
\\COMPUTER01
. Un tel double saut relève des restrictions de la délégation contrainte et vous finissez par accéder au partage en tant que connexion anonyme et donc accès refusé.Pour résoudre le problème, vous devez activer la délégation contrainte pour le compte de service SQL Server. Ce blog How To: SQL Server Bulk Insert with Constrained Délégation (Access is Denied) a un exemple de la façon de le faire, et j'espère vraiment que l'étape sur la façon `` d'activer la délégation sans contrainte '' n'est qu'une faute de frappe, car la délégation sans contrainte est tout simplement le mal.
Dans le cas où j'ai sauté le pistolet et que vous vous connectez à SQL Server à l'aide de l'authentification SQL, vous devrez créer des informations d'identification pour votre connexion SQL et l'utiliser pour accéder aux ressources réseau. Tu vois
CREATE CREDENTIAL
.la source
Sql Server a tenté d'ouvrir le fichier, le serveur de fichiers lui a dit "Accès refusé" car le compte sous lequel SQL Server s'exécute n'a pas l'autorisation d'ouvrir le fichier. Modifiez les paramètres de sécurité du fichier en conséquence et cela fonctionnera.
la source
Je voudrais exécuter le script sous une connexion SQL (avec l'autorisation bulkadmin) et laisser l'autorisation sur le dossier réseau s'authentifier auprès du compte de service SQL ou du compte de l'agent SQL Server.
la source
Je vais vous dire ce qui fonctionne pour moi chaque fois que je reçois ce message. j'ouvre le fichier csv sous forme de texte dans un bloc-notes et supprime toutes les lignes d'espace dans le fichier, je ne peux pas voir ces lignes vides dans le fichier excel. Habituellement, c'est juste la dernière ligne qui semble apparaître même si son vide
la source