V SQL Server 2019 můžete použít sys.xp_delete_files
uložená procedura k odstranění souboru v systému souborů.
Tato uložená procedura byla zavedena v SQL Server 2019 a lze ji použít ve spojení s sys.xp_copy_file
a sys.xp_copy_files
(obě byly také představeny v SQL Server 2019), které umožňují kopírovat soubory.
Před SQL Server 2019 byste museli použít xp_cmdshell
, který vytvoří příkazový shell Windows a předá řetězec k provedení. Nové uložené procedury představené v SQL Server 2019 umožňují kopírovat a odstraňovat soubory, aniž byste se museli spoléhat na xp_cmdshell
.
Příklad 1 – Smazání 1 souboru
Zde je příklad smazání jednoho souboru.
Příklad na Linuxu:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
Tento kód jsem spustil na svém Macu, který používá SQL Server 2019 na Linuxu. Tím byl úspěšně odstraněn soubor s názvem albums2.csv
(úplná cesta /var/opt/mssql/data/samples/albums2.csv
).
Chcete-li kopírovat soubory v systému Windows, musíte použít konvenci cest systému Windows.
Příklad ve Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
Je zřejmé, že přesné umístění bude záviset na vaší situaci.
Příklad 2 – Odstranění více souborů
Stejný postup můžete použít k odstranění více souborů.
Příklad na Linuxu:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
V tomto případě jsem smazal všechny soubory v /var/opt/mssql/data/samples/final
adresář, který začíná albums
a končí na .csv
. Používám hvězdičku (*
) zástupný znak pro výběr souborů, které mohou obsahovat další znaky za albums
část.
Příklad ve Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
Příklad 3 – Odstranění složek
Stejný postup můžete použít k odstranění celé složky.
Příklad na Linuxu:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
V tomto případě jsem smazal /var/opt/mssql/data/samples/final
adresář úplně.
Příklad ve Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';