2012-05-08 8 views
5

मैं एक निर्देशिका \\myServer\Admin\temp\testtemp.txtएसक्यूएल सर्वर 2008: एक फ़ाइल को कॉपी करें और नाम बदलने यह

मैं testtemp.txt फ़ाइल के लिए करने के लिए

  1. खोज एक TSQL लिखने की ज़रूरत के अंदर एक फ़ाइल है।
  2. तो मौजूद है, इसकी एक प्रति बना सकते हैं और Copytesttemp.txt
  3. लिए इसका नाम बदलना यदि इस

    \\abcd\Admin\temp\Copytesttemp.txt 
    
  4. की तरह ऊपर निर्देशिका में पहले से ही testtemp.txt है फिर उसे हटाने और पुन: Copytesttemp.txt

मैं इसे कैसे प्राप्त करूं? धन्यवाद।

+0

यह मेरा TSQL का एक छोटा सा अंश है सकते हैं। मैं इस नए copytesttemp.txt फ़ाइल को अपने थोक सम्मिलन ऑपरेशन में पास करने में सक्षम होना चाहता हूं और बाद में तालिका को थोक सम्मिलित करने, एक दृश्य आदि आदि से पूछताछ करना चाहता हूं। – Nemo

+1

आपने क्या प्रयास किया है - हम केवल कदम से कदम नहीं उठाते हैं हम केवल मार्गदर्शन प्रदान कर सकते हैं। – JonH

+0

http://stackoverflow.com/questions/10486013/sql-server-2008-bulk-insert-taking-forever से पहले, मुझे अपने थोक सम्मिलन ऑपरेशन में Copytesttemp.txt फ़ाइल को पास करने में सक्षम होना चाहिए। कृपया मुझे दो पता है कि आपको और स्पष्टीकरण की आवश्यकता है या नहीं। एक बार फिर धन्यवाद। – Nemo

उत्तर

14

आप किसी भी डॉस कमांड को चलाने के लिए xp_cmdshell का उपयोग कर सकते हैं, उदा।

declare @cmdstring varchar(1000) 

set @cmdstring = 'copy \\myServer\Admin\temp\testtemp.txt \\myServer\Admin\temp\Copytesttemp.txt' 
exec master..xp_cmdshell @cmdstring 

बस सुनिश्चित करें कि आपके इंस्टॉलेशन पर xp_cmdshell सक्षम है।

+0

हाय पॉल, आपकी मदद के लिए धन्यवाद। लेकिन मुझे एक्सेस अस्वीकार कर दिया गया है, 0 फाइलें कॉपी की गई हैं। मैंने जांच की और पाया कि xp_cmdshell मेरे सर्वर पर स्थापित/सक्षम है। कोई सुराग? – Nemo

+0

जांचें कि SQL सर्वर किस खाते के रूप में चल रहा है और फिर जांचें कि वह खाता उस साझा निर्देशिका को पढ़ने/लिखने में सक्षम है जिसे आप लिखने का प्रयास कर रहे हैं। – Paul

+0

धन्यवाद पॉल। यह अनुमति मुद्दा था और यह तय हो गया। मुझे नेटवर्क में संसाधनों तक पहुंचने की अनुमति दी गई थी। – Nemo

3

एक एसक्यूएल एजेंट जॉब बनाएं जो क्रियाओं को करने के लिए कमांड स्क्रिप्ट चलाता है।

0

आप एक फ़ाइल की प्रतिलिपि के लिए इस कोशिश करते हैं और नाम बदलने

EXEC master..xp_cmdshell 'COPY D:\T1\a.txt D:\T2\b.txt' 

केवल कॉपी और ले जाने के सिर्फ सीएमडी

तरह
EXEC master..xp_cmdshell 'COPY D:\T1\abcd.txt D:\T2' 
EXEC master..xp_cmdshell 'Move D:\T1\abcd.txt D:\T2' 
संबंधित मुद्दे