BCP-Host-Datendateifehler kann nicht geöffnet werden


7

Probleme bei der Verwendung von BCP über xp_cmdshell.

Ich habe die Tabellendaten als .dat in eine Datei exportiert, aber wenn ich versuche, die Datei in eine neue Tabelle zu importieren, wird der folgende Fehler angezeigt. Der SQL Server-Dienst und das von mir verwendete Konto haben vollen Zugriff auf dieses Laufwerk. Ich bin mir nicht sicher, warum ich immer noch Probleme habe.

Fehler = [Microsoft] [SQL Server Native Client 10.0] BCP-Host-Datendatei kann nicht geöffnet werden.

Hier sind die Skripte, die ich ausführe.

exec master..xp_cmdshell 'BCP database.dbo.tabel OUT d:\tabledata.dat -T -c' 
exec master..xp_cmdshell 'BCP database.dbo.tabelnew IN d:\tabledata.dat -T -c' 

Haben Sie versucht, diese Befehle direkt über die Befehlszeile auszuführen, anstatt sie zu verwenden xp_cmdshell?
Mike Fal

1
Nach meiner Erfahrung erfordert BCP im Allgemeinen, dass die Datei lokal auf dem Zielserver ist. Ist das der Fall?
Jon of All Trades

Versuchen Sie "exec master..xp_cmdshell" BCP database.dbo.tabel OUT d: \ somefolder \ tabledata.dat -T -c ". Das sollte funktionieren. Beachten Sie einen Ordner .
Kin Shah

Antworten:


5

Ich hatte das gleiche - irgendwie hat ein Windows- oder SQL Server-Update etwas geändert und ein zuvor erfolgreicher Build schlug fehl. In meinem Fall waren die Zugriffsberechtigungen für den Ordner mit den Datendateien fehlerhaft. Ich konnte das bcp über die Befehlszeile ausführen und es funktionierte, aber es schlug unter SQL Server fehl. Der SQL-Dienst benötigt grundsätzlich Zugriff auf den Ordner. Versuchen Sie es, um dies zu testen

EXEC master..xp_cmdshell 'DIR <your-dat-folder>'

Wenn dies fehlschlägt, überprüfen Sie Ihre Zugriffsberechtigungen (und gewähren Sie sie nach Bedarf).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.