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

So löschen Sie Dateien in SQL Server 2019

In SQL Server 2019 können Sie die sys.xp_delete_files verwenden gespeicherte Prozedur zum Löschen einer Datei im Dateisystem.

Diese gespeicherte Prozedur wurde in SQL Server 2019 eingeführt und kann in Verbindung mit sys.xp_copy_file verwendet werden und sys.xp_copy_files (beide wurden auch in SQL Server 2019 eingeführt), 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 und zu löschen, ohne sich auf xp_cmdshell verlassen zu müssen .

Beispiel 1 – 1 Datei löschen

Hier ist ein Beispiel für das Löschen einer einzelnen Datei.

Beispiel unter Linux:

EXEC master.sys.xp_delete_files
'/var/opt/mssql/data/samples/albums2.csv';

Ich habe diesen Code auf meinem Mac ausgeführt, der SQL Server 2019 unter Linux verwendet. Dadurch wurde eine Datei namens albums2.csv erfolgreich gelöscht (vollständiger Pfad /var/opt/mssql/data/samples/albums2.csv ).

Um Dateien auf einem Windows-System zu kopieren, müssen Sie die Windows-Pfadkonvention verwenden.

Beispiel unter Windows:

EXEC master.sys.xp_delete_files
'D:\mssql\data\samples\albums2.csv';

Natürlich hängt der genaue Standort von Ihrer Situation ab.

Beispiel 2 – Mehrere Dateien löschen

Sie können dasselbe Verfahren verwenden, um mehrere Dateien zu löschen.

Beispiel unter Linux:

EXEC master.sys.xp_delete_files
'/var/opt/mssql/data/samples/final/albums*.csv';

In diesem Fall habe ich alle Dateien in /var/opt/mssql/data/samples/final gelöscht Verzeichnisse, 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.

Beispiel unter Windows:

EXEC master.sys.xp_delete_files
'D:\mssql\data\samples\final\albums*.csv';

Beispiel 3 – Ordner löschen

Sie können das gleiche Verfahren verwenden, um den gesamten Ordner zu löschen.

Beispiel unter Linux:

EXEC master.sys.xp_delete_files
'/var/opt/mssql/data/samples/final/';

In diesem Fall habe ich /var/opt/mssql/data/samples/final gelöscht Verzeichnis zusammen.

Beispiel unter Windows:

EXEC master.sys.xp_delete_files
'D:\mssql\data\samples\final\';