এসকিউএল সার্ভারে একটি সঞ্চিত পদ্ধতি তৈরি করার সময়, আপনাকে অস্তিত্ব নেই এমন টেবিলগুলি উল্লেখ করার অনুমতি দেওয়া হয়। তবে, যদি টেবিলটি বিদ্যমান থাকে তবে আপনি যে পদ্ধতিতে উল্লিখিত কোনও কলাম অবশ্যই সেই সারণীতে থাকতে হবে (স্থিত নাম রেজোলিউশন )।
এসকিউএল সার্ভারকে কোনও পদ্ধতিতে রেফারেন্সযুক্ত সমস্ত সারণীর নাম রেজোলিউশন স্থগিত করার জন্য নির্দেশ দেওয়া সম্ভব কি না তা নির্বিশেষে? আমি সাধারণ বাক্য গঠন পরীক্ষা করে রাখতে চাই, সুতরাং এটি সম্ভব হলেও, সারণী পদ্ধতিতে সিস্টেম টেবিলে হ্যাক করা কোনও বিকল্প নয়।
আমি আশা করি এটি করার জন্য আমার জিজ্ঞাসাটি কিছুটা অদ্ভুত বলে মনে হচ্ছে , তাই এখানে কিছু ব্যাকগ্রাউন্ড দেওয়া হয়েছে: আমি সি # তে লিখিত অ্যাপ্লিকেশন থেকে টেবিল সংজ্ঞা এবং সঞ্চিত পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন করি এবং এসকিউএল প্রয়োজন হিসাবে পরিবর্তনগুলি অর্ডার করার জন্য কোডটি পরিবর্তন করা আমার পক্ষে খুব কঠিন তাদের। আমার কোড "গ্যারান্টি" দেয় যে স্কিমা লেনদেনের মধ্যে সামঞ্জস্যপূর্ণ, তবে বর্তমানে আমি গ্যারান্টি দিতে পারি না যে আমি সঞ্চিত পদ্ধতিটি উল্লেখ করার আগে টেবিল কলামগুলি সংজ্ঞায়িত করা হয়েছে যা সেগুলি উল্লেখ করে।
নীচে সি # এর দ্বারা নির্মিত এসকিউএল এর একটি আধ্যাত্মিক উদাহরণ দেওয়া হয়েছে যা আমি যে সমস্যার সমাধান করতে চাইছি তা "চিত্রিত" করে।
--Say this table already exists.
CREATE TABLE myTable
(
a NVARCHAR(MAX)
)
GO
--My C# code creates something like this
BEGIN TRAN
GO
--the stored procedure gets generated first.
CREATE PROCEDURE mySproc
AS
BEGIN
SELECT a,b FROM myTable
END
--then the table update
ALTER TABLE myTable
ADD b nvarchar(MAX)
COMMIT TRAN
এটি আমার জন্য সি # কোডে ঠিক করা সম্ভব, তবে আমি এসকিউএলটি টানতে পারি এমন একটি সহজ "যাদু" টুইটের আশা করছি। এটি আমার জন্য অনেক সময় সাশ্রয় করবে ।