जवाबों:
निम्नलिखित कमांड के साथ एक .BAT फ़ाइल बनाएँ:
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -E -i"%%G"
pause
यदि आपको उपयोगकर्ता नाम और पासवर्ड प्रदान करने की आवश्यकता है
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P
password -i"%%G"
ध्यान दें कि उपयोगकर्ता / पासवर्ड प्रदान करने पर "-ई" की आवश्यकता नहीं है
इस .BAT फ़ाइल को उस डायरेक्टरी में रखें जहाँ से आप .SQL फाइलें निष्पादित करना चाहते हैं, डबल .BAT फ़ाइल पर क्लिक करें और आप कर चुके हैं!
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
उपयोग के लिए । कमांड प्रॉम्प्ट से:
c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"
SQL प्रबंधन स्टूडियो में एक नई क्वेरी खोलें और नीचे सभी फाइलें टाइप करें
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
SQLCMD मोड पर क्लिक करें; फ़ाइलों को नीचे के रूप में ग्रे में चुना जाएगा
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
सुनिश्चित करें कि आपके पास प्रबंधन स्टूडियो में क्वेरी> SQLCMD मोड विकल्प पर क्लिक करके SQLCMD सक्षम है।
मान लीजिए कि आपके पास script1.sql,script2.sql,script3.sql,script4.sql
एक फ़ोल्डर में चार .sql फाइलें ( ) हैं c:\scripts
।
निम्नलिखित के साथ एक मुख्य स्क्रिप्ट फ़ाइल (Main.sql) बनाएँ:
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
:r c:\Scripts\script4.sql
Main.sql को c: \ script में ही सहेजें।
ExecuteScripts.bat
निम्नलिखित के साथ एक बैच फ़ाइल बनाएँ :
SQLCMD -E -d<YourDatabaseName> -ic:\Scripts\Main.sql
PAUSE
<YourDatabaseName>
उस डेटाबेस से प्रतिस्थापित करना याद रखें जिसे आप अपनी स्क्रिप्ट को निष्पादित करना चाहते हैं। उदाहरण के लिए, यदि डेटाबेस "कर्मचारी" है, तो कमांड निम्नलिखित होगी:
SQLCMD -E -dEmployee -ic:\Scripts\Main.sql
PAUSE
बैच फ़ाइल को डबल क्लिक करके निष्पादित करें।
-b
उदाहरण के लिए:SQLCMD -b -i "file 1.sql","file 2.sql"
आप ApexSQL प्रोपेगेट का उपयोग कर सकते हैं । यह एक मुफ़्त उपकरण है जो कई डेटाबेस पर कई स्क्रिप्ट निष्पादित करता है। आप जितनी भी ज़रूरत हो, उतने स्क्रिप्ट का चयन कर सकते हैं और उन्हें एक या कई डेटाबेस (यहां तक कि कई सर्वर) के खिलाफ निष्पादित कर सकते हैं। आप स्क्रिप्ट सूची बना सकते हैं और उसे सहेज सकते हैं, फिर बस उस सूची का चयन करें जिसे आप हर बार बनाए गए क्रम में उन्हीं लिपियों को निष्पादित करना चाहते हैं (एकाधिक स्क्रिप्ट सूचियों को भी जोड़ा जा सकता है):
जब स्क्रिप्ट और डेटाबेस का चयन किया जाता है, तो उन्हें मुख्य विंडो में दिखाया जाएगा और आपको बस "निष्पादित" बटन पर क्लिक करना होगा और सभी स्क्रिप्ट को दिए गए क्रम में चयनित डेटाबेस पर निष्पादित किया जाएगा:
सामान्य क्वेरी
नाम बैच के साथ नोटपैड में नीचे की पंक्तियों को सहेजें। फ़ोल्डर के अंदर जगह और जगह जहां आपकी सभी स्क्रिप्ट फ़ाइल है
for %%G in (*.sql) do sqlcmd /S servername /d databasename -i"%%G"
pause
उदाहरण
%% G के लिए (* .sql) sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" रोकें
यदि आपके लिए लॉगिन विफल हो गया है, तो कृपया नीचे दिए गए कोड का उपयोग उपयोगकर्ता नाम और पासवर्ड के साथ करें
for %%G in (*.sql) do sqlcmd /S SERVERNAME /d DBNAME -U USERNAME -P PASSWORD -i"%%G"
pause
%% G के लिए (* .sql) sqlcmd / S NE8148server / d EMPLYEEDB -U स्कॉट पी- टाइगर -आई "%% G" विराम दें
आपके द्वारा उस फ़ोल्डर के अंदर बैट फ़ाइल बनाने के बाद जिसमें आपकी स्क्रिप्ट फाइलें हैं, बस उस बैट फ़ाइल पर क्लिक करें जिसे आपकी स्क्रिप्ट निष्पादित हो जाएगी
मैंने C # में एक ओपन सोर्स यूटिलिटी लिखी है जो आपको कई एसक्यूएल फाइल्स को ड्रैग और ड्रॉप करने की अनुमति देता है और उन्हें एक डेटाबेस के खिलाफ चलाना शुरू करता है।
उपयोगिता में निम्नलिखित विशेषताएं हैं:
मैंने पाया सबसे आसान तरीका निम्नलिखित चरणों में शामिल है (केवल आवश्यकता Win7 + में है):
यह लंबा लगता है, लेकिन वास्तव में बहुत तेज है .. (यह तब तक लगता है जब मैंने सबसे छोटे चरणों का वर्णन किया है)
मुझे पता है कि आप कई sql फ़ाइलों को निष्पादित करने के लिए osql या sqlcmd कमांड का उपयोग कर सकते हैं। दोष यह है कि आपको दोनों कमांड के लिए एक स्क्रिप्ट बनानी होगी।
एकाधिक SQL सर्वर लिपियों को निष्पादित करने के लिए SQLCMD का उपयोग करना
OSQL (यह sql सर्वर 2000 के लिए है)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
@echo off
cd C:\Program Files (x86)\MySQL\MySQL Workbench 6.0 CE
for %%a in (D:\abc\*.sql) do (
echo %%a
mysql --host=ip --port=3306 --user=uid--password=ped < %%a
)
Step1: उपरोक्त पंक्तियाँ नोट पैड में कॉपी होती हैं, इसे बल्ले के रूप में सहेजते हैं
Step2: dl abc फोल्डर में सभी Sql फाइल्स को sql सर्वर में निष्पादित प्रश्नों में।
स्टेप 3: अपना आईपी, यूजर आईडी और पासवर्ड दें।
आप एक एकल स्क्रिप्ट बना सकते हैं जो अन्य सभी को कॉल करती है।
निम्नलिखित को एक बैच फ़ाइल में रखें:
@echo off
echo.>"%~dp0all.sql"
for %%i in ("%~dp0"*.sql) do echo @"%%~fi" >> "%~dp0all.sql"
जब आप उस बैच फ़ाइल को चलाते हैं तो यह all.sql
उसी निर्देशिका में नाम से एक नई स्क्रिप्ट बनाएगा जहाँ बैच फ़ाइल स्थित है। यह .sql
उसी निर्देशिका में एक्सटेंशन वाली सभी फ़ाइलों को खोजेगा जहां बैच फ़ाइल स्थित है।
आप स्क्रिप्ट बनाने के बाद sqlplus user/pwd @all.sql
कॉल sqlplus
करने के लिए (या बैच फ़ाइल का विस्तार करके ) सभी स्क्रिप्ट चला सकते हैंall.sql
प्रत्येक SQLfile को उसी निर्देशिका पर निष्पादित करने के लिए निम्नलिखित कमांड का उपयोग करें:
ls | awk '{print "@"$0}' > all.sql
यह कमांड "@" द्वारा संलग्न निर्देशिका में हर SQL फ़ाइल के नाम के साथ एक एकल SQL फ़ाइल बनाएगी।
SQLPlus के साथ all.sql
बस निष्पादित होने के बाद all.sql
, यह प्रत्येक sql फ़ाइल को निष्पादित करेगा all.sql
।
यदि आप इंटरएक्टिव एसक्यूएल का उपयोग कर सकते हैं:
1 - इस कोड के साथ एक .BAT फ़ाइल बनाएँ:
@ECHO OFF ECHO
for %%G in (*.sql) do dbisql -c "uid=dba;pwd=XXXXXXXX;ServerName=INSERT-DB-NAME-HERE" %%G
pause
2 - pwd और ServerName बदलें।
3 - .BAT फ़ाइल को उस फ़ोल्डर में रखें जिसमें .SQL फाइलें हों और उसे चलाएं।