উত্তর:
নিম্নলিখিত কমান্ড সহ একটি .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"
নোট করুন যে যখন ব্যবহারকারী / পাসওয়ার্ড সরবরাহ করা হয় তখন "-E" প্রয়োজন হয় না
আপনি .SQL ফাইলগুলি কার্যকর করতে চান সেই ডিরেক্টরিতে এই .BAT ফাইলটি স্থাপন করুন, .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"
এসকিউএল ম্যানেজমেন্ট স্টুডিওতে একটি নতুন কোয়েরি খুলুন এবং নীচের মতো সমস্ত ফাইল টাইপ করুন
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
এসকিউএলসিএমডি মোডে ক্লিক করুন; ফাইলগুলি নীচে ধূসর হিসাবে নির্বাচন করা হবে
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
ম্যানেজমেন্ট স্টুডিওতে কোয়েরি> এসকিউএলসিএমডি মোড অপশনে ক্লিক করে আপনার এসকিউএলসিএমডি সক্ষম হয়েছে তা নিশ্চিত করুন।
ধরুন আপনার ফোল্ডারে চারটি .sql ফাইল ( script1.sql,script2.sql,script3.sql,script4.sql
) রয়েছে c:\scripts
।
নিম্নলিখিতগুলি সহ একটি প্রধান স্ক্রিপ্ট ফাইল (মেইন.এসকিউএল) তৈরি করুন:
:r c:\Scripts\script1.sql
:r c:\Scripts\script2.sql
:r c:\Scripts\script3.sql
:r c:\Scripts\script4.sql
মেইন.এসকিউএল সি: \ স্ক্রিপ্টগুলিতে সংরক্ষণ করুন।
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"
আপনি অ্যাপেক্সএসকিউএল প্রচার ব্যবহার করতে পারেন । এটি একটি নিখরচায় সরঞ্জাম যা একাধিক ডাটাবেসে একাধিক স্ক্রিপ্ট কার্যকর করে। আপনি প্রয়োজন হিসাবে অনেক স্ক্রিপ্ট নির্বাচন করতে পারেন এবং এক বা একাধিক ডাটাবেস (এমনকি একাধিক সার্ভার) এর বিরুদ্ধে এগুলি কার্যকর করতে পারেন। আপনি স্ক্রিপ্ট তালিকা তৈরি করতে এবং এটি সংরক্ষণ করতে পারেন, তারপরে আপনি তৈরি ক্রমে একই স্ক্রিপ্টগুলি চালানোর জন্য প্রতিবার কেবল সেই তালিকাটি নির্বাচন করুন (একাধিক স্ক্রিপ্টের তালিকাও যুক্ত করা যেতে পারে):
যখন স্ক্রিপ্ট এবং ডাটাবেসগুলি নির্বাচন করা হয়, সেগুলি মূল উইন্ডোতে প্রদর্শিত হবে এবং আপনাকে যা করতে হবে তা হল "এক্সিকিউট" বোতামটি ক্লিক করা এবং সমস্ত স্ক্রিপ্টগুলি প্রদত্ত ক্রমে নির্বাচিত ডাটাবেসে কার্যকর করা হবে:
সাধারণ জিজ্ঞাসা
নোটপ্যাডে নীচের লাইনগুলি ব্যাচ.বাট নামের সাথে সংরক্ষণ করুন এবং যেখানে আপনার সমস্ত স্ক্রিপ্ট ফাইল রয়েছে সেই ফোল্ডারের ভিতরে রাখুন
for %%G in (*.sql) do sqlcmd /S servername /d databasename -i"%%G"
pause
EXAMPLE টি
%% 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
(* .sql) না sqlcmd / এস এ %% জি জন্য NE8148server / ডি EMPLYEEDB -U স্কট -P বাঘ -i "%% জি" বিরতি
আপনি যে ফোল্ডারে আপনার স্ক্রিপ্ট ফাইলগুলি আছে সেখানে ব্যাট ফাইলটি তৈরি করার পরে আপনার স্ক্রিপ্টগুলি কার্যকর হবে bat
আমি সি # তে একটি ওপেন সোর্স ইউটিলিটি লিখেছি যা আপনাকে অনেকগুলি এসকিউএল ফাইলগুলি টেনে আনতে এবং ছাড়তে দেয় এবং এটি একটি ডাটাবেসের বিরুদ্ধে চালানো শুরু করে।
ইউটিলিটির নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:
আমি যে সবচেয়ে সহজ উপায়টি পেয়েছি তাতে নিম্নলিখিত পদক্ষেপগুলি অন্তর্ভুক্ত রয়েছে (এটি কেবলমাত্র উইন 7+ এ থাকা প্রয়োজন):
এটি দীর্ঘ শোনাচ্ছে, তবে বাস্তবে এটি খুব দ্রুত .. (আমি এমনকি ক্ষুদ্রতম পদক্ষেপগুলি বর্ণনা করার সাথে এটি দীর্ঘ শোনাচ্ছে)
আমি যা জানি আপনি একাধিক এসকিএল ফাইলগুলি কার্যকর করতে osql বা sqlcmd কমান্ড ব্যবহার করতে পারেন। অপূর্ণতা হ'ল আপনাকে উভয় কমান্ডের জন্য একটি স্ক্রিপ্ট তৈরি করতে হবে।
একাধিক এসকিউএল সার্ভার স্ক্রিপ্টগুলি কার্যকর করতে এসকিউএলসিএমডি ব্যবহার করে
ওএসকিউএল (এটি স্কেল সার্ভার 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
)
পদক্ষেপ 1: উপরের লাইনগুলি নোট প্যাডে অনুলিপি করে এটি ব্যাট হিসাবে সংরক্ষণ করুন।
পদক্ষেপ 2: এসকিউএল সার্ভারে এক্সিকিউট করা প্রশ্নের মধ্যে সমস্ত এসকিউএল ফাইলগুলিতে ডি ড্রাইভ এবিসি ফোল্ডারে।
স্টিপি 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
)
একই ডিরেক্টরিতে প্রতিটি এসকিউএল ফাইল চালানোর জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
ls | awk '{print "@"$0}' > all.sql
এই কমান্ডটি "@" দ্বারা যুক্ত ডিরেক্টরিতে প্রতিটি এসকিউএল ফাইলের নাম সহ একটি একক এসকিউএল ফাইল তৈরি করবে।
তৈরি করার পরে all.sql
কেবল all.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 - পিডাব্লুডি এবং সার্ভারনাম পরিবর্তন করুন।
3 - .SQL ফাইল রয়েছে এমন ফোল্ডারে .BAT ফাইলটি রাখুন এবং এটি চালান।