No SQL Server 2019, você pode usar os
sys.xp_delete_files procedimento armazenado para excluir um arquivo no sistema de arquivos. Esse procedimento armazenado foi introduzido no SQL Server 2019 e pode ser usado em conjunto com
sys.xp_copy_file e sys.xp_copy_files (ambos também foram introduzidos no SQL Server 2019), que permitem copiar arquivos. Antes do SQL Server 2019, você precisaria usar
xp_cmdshell , que gera um shell de comando do Windows e passa uma string para execução. Os novos procedimentos armazenados introduzidos no SQL Server 2019 permitem copiar e excluir arquivos sem depender de xp_cmdshell . Exemplo 1 – Excluir 1 arquivo
Aqui está um exemplo de exclusão de um único arquivo.
Exemplo no Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
Executei este código no meu Mac, que usa o SQL Server 2019 no Linux. Isso excluiu com sucesso um arquivo chamado
albums2.csv (caminho completo /var/opt/mssql/data/samples/albums2.csv ). Para copiar arquivos em um sistema Windows, você precisa usar a convenção de caminho do Windows.
Exemplo no Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
Obviamente, a localização exata dependerá da sua situação.
Exemplo 2 – Excluir vários arquivos
Você pode usar o mesmo procedimento para excluir vários arquivos.
Exemplo no Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
Nesse caso, excluí todos os arquivos no
/var/opt/mssql/data/samples/final diretório que começa com albums e termine com .csv . Eu uso o asterisco (* ) curinga para selecionar arquivos que podem incluir outros caracteres após os albums papel. Exemplo no Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
Exemplo 3 – Excluir pastas
Você pode usar o mesmo procedimento para excluir a pasta inteira.
Exemplo no Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
Nesse caso, excluí o
/var/opt/mssql/data/samples/final diretório completamente. Exemplo no Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';