Zwei neue gespeicherte Prozeduren, die in SQL Server 2019 eingeführt wurden, sind sys.xp_copy_file
und sys.xp_copy_files
, mit denen Sie Dateien kopieren können.
Vor SQL Server 2019 mussten Sie xp_cmdshell
verwenden , die eine Windows-Befehlsshell erzeugt und eine Zeichenfolge zur Ausführung übergibt. Die neuen gespeicherten Prozeduren, die in SQL Server 2019 eingeführt wurden, ermöglichen es Ihnen, Dateien zu kopieren, ohne sich auf xp_cmdshell
verlassen zu müssen .
Beispiel 1 – 1 Datei kopieren
Sie können sys.xp_copy_file
verwenden um eine einzelne Datei zu kopieren. Mit dieser gespeicherten Prozedur können Sie die neue Datei auch benennen.
Beispiel unter Linux:
EXEC master.sys.xp_copy_file '/var/opt/mssql/data/samples/albums.csv', '/var/opt/mssql/data/samples/albums2.csv';
Ich habe diesen Code erfolgreich auf meinem Mac ausgeführt, der SQL Server 2019 unter Linux verwendet.
Um Dateien auf einem Windows-System zu kopieren, müssen Sie die Windows-Pfadkonvention verwenden.
Beispiel unter Windows:
EXEC master.sys.xp_copy_file 'D:\mssql\data\samples\albums.csv', 'D:\mssql\data\samples\albums2.csv';
Beispiel 2 – Mehrere Dateien kopieren
Sie können sys.xp_copy_files
verwenden um mehrere Dateien zu kopieren.
Beispiel unter Linux:
EXEC master.sys.xp_copy_files '/var/opt/mssql/data/samples/albums*.csv', '/var/opt/mssql/data/samples/final';
Hier befinde ich mich im selben Ordner wie im vorherigen Beispiel. In diesem Fall habe ich alle Dateien kopiert, die mit albums
beginnen und enden mit .csv
. Ich verwende das Sternchen (*
) Platzhalter, um Dateien auszuwählen, die andere Zeichen nach dem albums
enthalten können Teil.
In diesem Beispiel werden die Dateien nach /var/opt/mssql/data/samples/final
kopiert Verzeichnis.
Beispiel unter Windows:
EXEC master.sys.xp_copy_file 'D:\mssql\data\samples\albums*.csv', 'D:\mssql\data\samples\final';
Dateien löschen
SQL Server 2019 hat auch die sys.xp_delete_files
eingeführt gespeicherte Prozedur, mit der Sie Dateien löschen können. Beispiele zum Löschen der in diesem Artikel erstellten Dateien finden Sie unter So löschen Sie Dateien in SQL Server 2019.