如何在SQL Server 2019中删除文件
在 SQL Server 2019 中,可以使用存储过程删除文件系统上的文件。sys.xp_delete_files
此存储过程是在 SQL Server 2019 中引入的,它可以与 和(SQL Server 2019 中也引入这两种方法)结合使用,这使您能够复制文件。sys.xp_copy_file``sys.xp_copy_files
在 SQL Server 2019 之前,您需要使用 ,它会生成一个 Windows 命令外壳并传入一个字符串以供执行。SQL Server 2019 中引入的新存储过程允许您复制和删除文件,而无需依赖 .xp_cmdshell``xp_cmdshell
示例 1 – 删除 1 个文件
下面是删除单个文件的示例。
Linux上的示例:
EXEC master.sys.xp_delete_files ‘/var/opt/mssql/data/samples/albums2.csv’;
我在Mac上运行了这段代码,它在Linux上使用SQL Server 2019。这成功删除了一个名为(完整路径)的文件。albums2.csv``/var/opt/mssql/data/samples/albums2.csv
若要在 Windows 系统上复制文件,需要使用 Windows 路径约定。
在窗口上的示例:
EXEC master.sys.xp_delete_files ‘D:\mssql\data\samples\albums2.csv’;
显然,确切的位置将取决于您的情况。
示例 2 – 删除多个文件
您可以使用相同的过程删除多个文件。
Linux上的示例:
EXEC master.sys.xp_delete_files ‘/var/opt/mssql/data/samples/final/albums*.csv’;
在这个示例中,我删除了目录中以 开头和结尾的所有文件。我使用星号 () 通配符来选择可能在部分后包含其他字符的文件。/var/opt/mssql/data/samples/final``albums``.csv``*``albums
在窗口上的示例:
EXEC master.sys.xp_delete_files ‘D:\mssql\data\samples\final\albums*.csv’;
示例 3 – 删除文件夹
您可以使用相同的过程删除整个文件夹。
Linux上的示例:
EXEC master.sys.xp_delete_files ‘/var/opt/mssql/data/samples/final/’;
在这个示例中,我完全删除了该目录。/var/opt/mssql/data/samples/final
在窗口上的示例:
EXEC master.sys.xp_delete_files ‘D:\mssql\data\samples\final';