sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo eliminar archivos en SQL Server 2019

En SQL Server 2019, puede usar sys.xp_delete_files procedimiento almacenado para eliminar un archivo en el sistema de archivos.

Este procedimiento almacenado se introdujo en SQL Server 2019 y se puede usar junto con sys.xp_copy_file y sys.xp_copy_files (ambos también se introdujeron en SQL Server 2019), que le permiten copiar archivos.

Antes de SQL Server 2019, necesitaría usar xp_cmdshell , que genera un shell de comandos de Windows y pasa una cadena para su ejecución. Los nuevos procedimientos almacenados introducidos en SQL Server 2019 le permiten copiar y eliminar archivos sin depender de xp_cmdshell .

Ejemplo 1:eliminar 1 archivo

Este es un ejemplo de cómo eliminar un solo archivo.

Ejemplo en Linux:

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

Ejecuté este código en mi Mac, que usa SQL Server 2019 en Linux. Esto eliminó con éxito un archivo llamado albums2.csv (ruta completa /var/opt/mssql/data/samples/albums2.csv ).

Para copiar archivos en un sistema Windows, debe usar la convención de ruta de acceso de Windows.

Ejemplo en Windows:

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

Obviamente, la ubicación exacta dependerá de tu situación.

Ejemplo 2:eliminar varios archivos

Puede utilizar el mismo procedimiento para eliminar varios archivos.

Ejemplo en Linux:

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

En este caso, eliminé todos los archivos en /var/opt/mssql/data/samples/final directorio que comienza con albums y terminar con .csv . Uso el asterisco (* ) comodín para seleccionar archivos que pueden incluir otros caracteres después de albums parte.

Ejemplo en Windows:

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

Ejemplo 3:eliminar carpetas

Puede utilizar el mismo procedimiento para eliminar toda la carpeta.

Ejemplo en Linux:

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

En este caso, eliminé el /var/opt/mssql/data/samples/final directorio por completo.

Ejemplo en Windows:

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