Was ist der einfachste Weg zum Lesen und Schreiben von Dateien in einem Sproc mit BCP?Einfache Verwendung von BCP zum Lesen und Schreiben von einem SPROC
1
A
Antwort
2
Zum Lesen einer Datei in T-SQL, empfehle ich, die BULK INSERT
-Anweisung zu verwenden, anstatt mit bcp
zu verwirren. Sie verwenden den gleichen zugrundeliegenden Mechanismus, aber wenn Sie bereits in einem T-SQL gespeicherten Proc sind, ist es besser, nicht in den Befehlszeilenbereich zu springen.
Leider, soweit ich weiß, gibt es keine SQL-Anweisung, die Sie ausführen können, um eine Datei zu schreiben. Du musst also etwas wie exec master..xp_cmdshell @cmd
machen. Sie können bcp
oder osql
als Ihren Befehl verwenden. Wenn Sie bcp
verwenden, this page has a nice tutorial, sondern nur zusammenfassen, hier ist ein Beispielcode:
-- make a pipe delimited file... requires access to xp_cmdshell and the file system
declare @cmd varchar(8000)
select @cmd = 'bcp mydb.dbo.tblWhatever out "c:\bcp\tblWhatever.txt" -c –t| -T -S' + @@servername
exec master..xp_cmdshell @cmd
ich das versucht, die Abfrage gearbeitet, aber es scheint nicht, die Datei in das Verzeichnis ausgegeben wird. Ich muss weiter damit spielen und herausfinden warum. –
Nicht genug Benutzerrechte wahrscheinlich? –