I SQL Server 2019 kan du bruge sys.xp_delete_files
gemt procedure for at slette en fil på filsystemet.
Denne lagrede procedure blev introduceret i SQL Server 2019, og den kan bruges sammen med sys.xp_copy_file
og sys.xp_copy_files
(som begge også blev introduceret i SQL Server 2019), som giver dig mulighed for at kopiere filer.
Før SQL Server 2019 skal du bruge xp_cmdshell
, som afføder en Windows-kommandoskall og sender en streng til eksekvering. De nye lagrede procedurer introduceret i SQL Server 2019 giver dig mulighed for at kopiere og slette filer uden at stole på xp_cmdshell
.
Eksempel 1 – Slet 1 fil
Her er et eksempel på sletning af en enkelt fil.
Eksempel på Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
Jeg kørte denne kode på min Mac, som bruger SQL Server 2019 på Linux. Dette slettede en fil kaldet albums2.csv
(fuld sti /var/opt/mssql/data/samples/albums2.csv
).
For at kopiere filer på et Windows-system skal du bruge Windows-stikonventionen.
Eksempel på Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
Den nøjagtige placering vil naturligvis afhænge af din situation.
Eksempel 2 – Slet flere filer
Du kan bruge den samme procedure til at slette flere filer.
Eksempel på Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
I dette tilfælde slettede jeg alle filer i /var/opt/mssql/data/samples/final
mappe, der starter med albums
og afslutte med .csv
. Jeg bruger stjernen (*
) jokertegn for at vælge filer, der kan indeholde andre tegn efter albums
del.
Eksempel på Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
Eksempel 3 – Slet mapper
Du kan bruge samme procedure til at slette hele mappen.
Eksempel på Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
I dette tilfælde slettede jeg /var/opt/mssql/data/samples/final
mappe helt.
Eksempel på Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';