Dua prosedur tersimpan baru yang diperkenalkan di SQL Server 2019 adalah sys.xp_copy_file
dan sys.xp_copy_files
, 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 file tanpa bergantung pada xp_cmdshell
.
Contoh 1 – Salin 1 File
Anda dapat menggunakan sys.xp_copy_file
untuk menyalin satu file. Menggunakan prosedur tersimpan ini memungkinkan Anda juga memberi nama file baru.
Contoh di Linux:
EXEC master.sys.xp_copy_file '/var/opt/mssql/data/samples/albums.csv', '/var/opt/mssql/data/samples/albums2.csv';
Saya berhasil menjalankan kode ini di Mac saya, yang menggunakan SQL Server 2019 di Linux.
Untuk menyalin file di sistem Windows, Anda harus menggunakan konvensi jalur Windows.
Contoh di Windows:
EXEC master.sys.xp_copy_file 'D:\mssql\data\samples\albums.csv', 'D:\mssql\data\samples\albums2.csv';
Contoh 2 – Salin Banyak File
Anda dapat menggunakan sys.xp_copy_files
untuk menyalin banyak file.
Contoh di Linux:
EXEC master.sys.xp_copy_files '/var/opt/mssql/data/samples/albums*.csv', '/var/opt/mssql/data/samples/final';
Di sini saya berada di folder yang sama dengan contoh sebelumnya. Dalam hal ini, saya menyalin semua file 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 ini menyalin file ke /var/opt/mssql/data/samples/final
direktori.
Contoh di Windows:
EXEC master.sys.xp_copy_file 'D:\mssql\data\samples\albums*.csv', 'D:\mssql\data\samples\final';
Menghapus File
SQL Server 2019 juga memperkenalkan sys.xp_delete_files
prosedur tersimpan, yang memungkinkan Anda untuk menghapus file. Lihat Cara Menghapus File di SQL Server 2019 untuk contoh menghapus file yang dibuat di artikel ini.