সঞ্চিত পদ্ধতিতে সমস্ত ফলাফলের সেটগুলির জন্য মেটাডেটা ফিরিয়ে দেওয়ার জন্য কী কোনও প্রক্রিয়া বিদ্যমান?
না এবং হ্যাঁ
না
প্রথম ফলাফল সেটের চেয়ে বেশি অ্যাক্সেসের খাঁটি টি-এসকিউএল উপায় নেই। এমনকি ওপেনরোসেট এবং অপেনপুরিতেও একই সীমাবদ্ধতা রয়েছে:
যদিও কোয়েরিতে একাধিক ফলাফল সেটগুলি ফিরে আসতে পারে, ওপেন (ROWSET | QUERY) কেবলমাত্র প্রথমটি দেয়।
রেকর্ডের জন্য, আমি এই কথা সীমাবদ্ধতার জন্য কোনও সাধারণ প্রযুক্তিগত কারণ নেই বা বলছি বা বোঝাইচ্ছি না। আমি শুধু ইশারা করছি যে সীমাবদ্ধতা মধ্যেই সীমাবদ্ধ নয় sp_describe_first_result_set
, sys.dm_exec_describe_first_result_set
এবং sys.dm_exec_describe_first_result_set_for_object
।
হ্যাঁ
তথ্য ক্যাপচার একমাত্র উপায় - ফলাফল সেট মেটা-ডেটা এবং এমনকি ফলাফল - ফলাফল সেট 2 - n অ্যাপ্লিকেশন কোডের মাধ্যমে হয়। আপনিই প্রথম প্রশ্নের / সঞ্চিত পদ্ধতি (গুলি) ব্যবহার করে চালানো হবে SqlCommand.ExecuteReader (CommandBehavior) একটি সঙ্গে CommandBehavior এর KeyInfo
। তারপরে, আপনি SQLDataReader.GetSchemaTable পদ্ধতি ব্যবহার করে ফলাফল সেট মেটা ডেটা পেতে পারেন এবং ফলাফল সেটগুলির মাধ্যমে চক্রের জন্য SqlDataReader.NextResult পদ্ধতিতে কল করতে পারেন । কেবল মনে রাখবেন যে অ্যাপ কোডের মাধ্যমে এটি করার সময় ডায়নামিক এসকিউএল এবং অস্থায়ী সারণীগুলির সাথে কাজ না করার সীমাবদ্ধতা থাকে না, এটি করেআসলে এসকিউএল কোডটি চালান, এবং যদি আপনার ডিএমএল স্টেটমেন্ট থাকে এবং ফলাফলের কোনও পরিবর্তন না ঘটায় কেবল মেটা-ডেটা সেট করতে চান, তবে আপনাকে যে এসকিউএল পরীক্ষা করতে যাচ্ছেন তা একটি BEGIN TRAN
/ ROLLBACK TRAN
।
অ্যাপ্লিকেশন ধরণের একটি নিয়মিত উইন্ডোজ অ্যাপ, কনসোল অ্যাপ্লিকেশন, ওয়েব অ্যাপ্লিকেশন ইত্যাদি হতে পারে বা এটি কোনও এসকিউএলসিআরআর ফাংশন / সঞ্চিত পদ্ধতিও হতে পারে।
এসকিউএলসিআরআর এর মাধ্যমে এটি করার ক্ষেত্রে, একটি সঞ্চিত পদ্ধতি ইতিমধ্যে উপস্থিত রয়েছে যা এখানে বর্ণিত হয়েছে does এটিকে DB_DescribeResultSets বলা হয় এবং এটি এসকিউএল # লাইব্রেরির অংশ ( এটির আমি লেখক এবং যখন একটি নিখরচায় সংস্করণ থাকে, তখন ডিবি_ডেসক্রাইবসেলসুটসেটগুলি কেবল সম্পূর্ণ সংস্করণে উপলব্ধ)।