Di SQL Server 2019, Anda dapat menggunakan sys.xp_delete_files prosedur tersimpan untuk menghapus file pada sistem file.
Prosedur tersimpan ini diperkenalkan di SQL Server 2019, dan dapat digunakan bersama dengan sys.xp_copy_file dan sys.xp_copy_files (keduanya juga diperkenalkan di SQL Server 2019), yang memungkinkan Anda menyalin file.
Sebelum SQL Server 2019, Anda harus menggunakan xp_cmdshell , yang memunculkan shell perintah Windows dan meneruskan string untuk dieksekusi. Prosedur tersimpan baru yang diperkenalkan di SQL Server 2019 memungkinkan Anda menyalin dan menghapus file tanpa bergantung pada xp_cmdshell .
Contoh 1 – Hapus 1 File
Berikut ini contoh menghapus satu file.
Contoh di Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
Saya menjalankan kode ini di Mac saya, yang menggunakan SQL Server 2019 di Linux. Ini berhasil menghapus file bernama albums2.csv (path lengkap /var/opt/mssql/data/samples/albums2.csv ).
Untuk menyalin file di sistem Windows, Anda harus menggunakan konvensi jalur Windows.
Contoh di Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
Jelas, lokasi yang tepat akan tergantung pada situasi Anda.
Contoh 2 – Hapus Banyak File
Anda dapat menggunakan prosedur yang sama untuk menghapus banyak file.
Contoh di Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
Dalam hal ini, saya menghapus semua file di /var/opt/mssql/data/samples/final direktori yang dimulai dengan albums dan diakhiri dengan .csv . Saya menggunakan tanda bintang (* ) wildcard untuk memilih file yang mungkin menyertakan karakter lain setelah albums bagian.
Contoh di Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
Contoh 3 – Hapus Folder
Anda dapat menggunakan prosedur yang sama untuk menghapus seluruh folder.
Contoh di Linux:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
Dalam hal ini, saya menghapus /var/opt/mssql/data/samples/final direktori sama sekali.
Contoh di Windows:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';