raiserror পদ্ধতি
raiserror('Oh no a fatal error', 20, -1) with log
এটি সংযোগটি শেষ করবে, এর ফলে বাকী স্ক্রিপ্টটি চলমান থেকে থামবে।
মনে রাখবেন যে তীব্রতা স্তর 20 বা উচ্চতর এবং WITH LOG
বিকল্পটি এটি এইভাবে কাজ করার জন্য প্রয়োজনীয়।
এটি এমনকি জিও স্টেটমেন্টগুলির সাথেও কাজ করে।
print 'hi'
go
raiserror('Oh no a fatal error', 20, -1) with log
go
print 'ho'
আপনাকে আউটপুট দেবে:
hi
Msg 2745, Level 16, State 2, Line 1
Process ID 51 has raised user error 50000, severity 20. SQL Server is terminating this process.
Msg 50000, Level 20, State 1, Line 1
Oh no a fatal error
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
লক্ষ্য করুন যে 'হো' মুদ্রিত হয়নি।
আদেশ সহকারে:
- এটি কেবলমাত্র তখনই কার্যকর হয় যদি আপনি অ্যাডমিন হিসাবে লগইন হন ('সিসাদমিন' ভূমিকা), এবং আপনাকে কোনও ডাটাবেস সংযোগ না রেখে দেয়।
- আপনি যদি অ্যাডমিন হিসাবে লগ ইন না হয়ে থাকেন তবে রাইসিরআর () কলটি নিজেই ব্যর্থ হবে এবং স্ক্রিপ্টটি চালিয়ে যাওয়া চালিয়ে যাবে ।
- যখন sqlcmd.exe সহ আহ্বান করা হবে, প্রস্থান কোড 2745 প্রতিবেদন করা হবে।
তথ্যসূত্র: http://www.mydatediasupport.com/forums/ms-sqlserver/174037-sql-server-2000-abort- whole-script.html# post761334
নোেক্সেক পদ্ধতি
জিও স্টেটমেন্টগুলির সাথে কাজ করে এমন আরেকটি পদ্ধতি set noexec on
। এর ফলে বাকী স্ক্রিপ্টটি বাদ পড়ে যায়। এটি সংযোগটি শেষ করে না, তবে noexec
কোনও আদেশ কার্যকর হওয়ার আগে আপনাকে আবার বন্ধ করতে হবে।
উদাহরণ:
print 'hi'
go
print 'Fatal error, script will not continue!'
set noexec on
print 'ho'
go
-- last line of the script
set noexec off -- Turn execution back on; only needed in SSMS, so as to be able
-- to run this script again in the same session.