Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Neue Methode zum Kopieren von Dateien in SQL Server 2019

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.