SQL सर्वर 2019 में, आप sys.xp_delete_files
. का उपयोग कर सकते हैं फ़ाइल सिस्टम पर फ़ाइल को हटाने के लिए संग्रहीत प्रक्रिया।
यह संग्रहीत कार्यविधि SQL सर्वर 2019 में पेश की गई थी, और इसका उपयोग sys.xp_copy_file
के संयोजन में किया जा सकता है और sys.xp_copy_files
(दोनों को SQL सर्वर 2019 में भी पेश किया गया था), जो आपको फाइलों को कॉपी करने में सक्षम बनाता है।
SQL सर्वर 2019 से पहले, आपको xp_cmdshell
. का उपयोग करना होगा , जो एक विंडोज़ कमांड शेल को उत्पन्न करता है और निष्पादन के लिए एक स्ट्रिंग में गुजरता है। SQL सर्वर 2019 में पेश की गई नई संग्रहीत कार्यविधियाँ आपको xp_cmdshell
पर निर्भर हुए बिना फ़ाइलों को कॉपी और हटाने की अनुमति देती हैं .
उदाहरण 1 - 1 फ़ाइल हटाएं
यहां एक फ़ाइल को हटाने का एक उदाहरण दिया गया है।
लिनक्स पर उदाहरण:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
मैंने इस कोड को अपने मैक पर चलाया, जो लिनक्स पर SQL सर्वर 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 - एकाधिक फ़ाइलें हटाएं
आप एकाधिक फ़ाइलों को हटाने के लिए एक ही प्रक्रिया का उपयोग कर सकते हैं।
लिनक्स पर उदाहरण:
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 - फ़ोल्डर हटाएं
आप पूरे फ़ोल्डर को हटाने के लिए उसी प्रक्रिया का उपयोग कर सकते हैं।
लिनक्स पर उदाहरण:
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\';