Trong SQL Server 2019, bạn có thể sử dụng sys.xp_delete_files
thủ tục được lưu trữ để xóa một tệp trên hệ thống tệp.
Quy trình được lưu trữ này đã được giới thiệu trong SQL Server 2019 và nó có thể được sử dụng cùng với sys.xp_copy_file
và sys.xp_copy_files
(cả hai đều được giới thiệu trong SQL Server 2019), cho phép bạn sao chép tệp.
Trước SQL Server 2019, bạn cần sử dụng xp_cmdshell
, tạo ra một trình bao lệnh Windows và chuyển vào một chuỗi để thực thi. Các thủ tục được lưu trữ mới được giới thiệu trong SQL Server 2019 cho phép bạn sao chép và xóa tệp mà không cần dựa vào xp_cmdshell
.
Ví dụ 1 - Xóa 1 tệp
Dưới đây là một ví dụ về việc xóa một tệp.
Ví dụ trên Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
Tôi đã chạy mã này trên máy Mac của mình, sử dụng SQL Server 2019 trên Linux. Thao tác này đã xóa thành công tệp có tên albums2.csv
(đường dẫn đầy đủ /var/opt/mssql/data/samples/albums2.csv
).
Để sao chép tệp trên hệ thống Windows, bạn cần sử dụng quy ước đường dẫn Windows.
Ví dụ trên Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
Rõ ràng, vị trí chính xác sẽ phụ thuộc vào tình huống của bạn.
Ví dụ 2 - Xóa nhiều tệp
Bạn có thể sử dụng quy trình tương tự để xóa nhiều tệp.
Ví dụ trên Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
Trong trường hợp này, tôi đã xóa tất cả các tệp trong /var/opt/mssql/data/samples/final
thư mục bắt đầu bằng albums
và kết thúc bằng .csv
. Tôi sử dụng dấu hoa thị (*
) ký tự đại diện để chọn các tệp có thể bao gồm các ký tự khác sau albums
một phần.
Ví dụ trên Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
Ví dụ 3 - Xóa thư mục
Bạn có thể sử dụng quy trình tương tự để xóa toàn bộ thư mục.
Ví dụ trên Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
Trong trường hợp này, tôi đã xóa /var/opt/mssql/data/samples/final
toàn bộ thư mục.
Ví dụ trên Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';