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\';