如何在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';