কেবলমাত্র অতিরিক্ত "প্রতিরক্ষামূলক" হতে, নীচের সংস্করণটি> 1 টির মিলনের ক্ষেত্রে সম্ভাব্যতা (তবে অসম্ভাব্য) হিসাবে অ্যাকাউন্টের জন্য টাইপ রূপান্তর ত্রুটি উত্পন্ন করে যা Schemaবৈধকরণ কোডটি প্রায়শই ইচ্ছাকৃতভাবে ব্যতিক্রম ছুঁড়ে দেয় কারণ আমি বিশ্বাস করি এটি ভাল এবং এটি আমি বিশ্বাস করি সমস্ত সম্ভাব্য প্রত্যাবর্তনের ফলাফলের জন্য "সর্বোত্তম অনুশীলন" "তবে তা অসম্ভব এবং এমনকি যদি এটি মারাত্মক ব্যতিক্রম ঘটায় তবে প্রসেসিং বন্ধ করার পরিচিত প্রভাবগুলি অন-আটকে থাকা ত্রুটির অজানা ক্যাসকেডিং প্রভাবগুলির চেয়ে ভাল। এটি অত্যন্ত অসম্ভব, কারণ আমি মনে করি না যে এটি একটি পৃথক Countচেক + Throwবা Try- Catch- Throwআরও বেশি ব্যবহারকারী-বান্ধব মারাত্মক ত্রুটি উত্পন্ন করার পরেও মারাত্মক ত্রুটি তৈরির সমস্যার পক্ষে উপযুক্ত।
এসএস 2005-:
declare @HasSchemaX bit
set @HasSchemaX = case (select count(1) from sys.schemas where lower(name) = lower('SchemaX')) when 1 then 1 when 0 then 0 else 'ERROR' end
এসএস ২০০+:
declare @HasSchemaX bit = case (select count(1) from sys.schemas where lower(name) = lower('SchemaX')) when 1 then 1 when 0 then 0 else 'ERROR' end
তারপরে:
if @HasSchemaX = 1
begin
...
end