লাইভ প্রোড টেবিলে বর্ণের দৈর্ঘ্য পরিবর্তন করুন


25

আমার একটি এমএস এসকিউএল সার্ভার ২০০৮ আর 2 ডিবি সার্ভার বর্তমানে একটি প্রোডাকশন অ্যাপ্লিকেশানের সাথে ব্যবহার করছে।

অ্যাপ্লিকেশনটিতে নতুন বর্ধনের জন্য varchar(100)দৈর্ঘ্য বাড়ানোর জন্য এখন একটি টেবিলের একটি কলাম প্রয়োজন ।

প্রোড ডিবিতে বিদ্যমান কলামটির দৈর্ঘ্য বর্তমান ডেটা প্রভাবিত না করে কি বাড়ানো যেতে পারে?

পরিষেবাটি ব্যাহত না হওয়ার জন্য এই পরিবর্তনটি কি অফ-ঘন্টা চলাকালীন শেষ করা উচিত?

উত্তর:


42

যদি আপনি এটিকে বাড়িয়ে তুলছেন varchar(100 - 8000)(অর্থাত্ অন্য কিছু varchar(max)) এবং আপনি এসএসএমএস জিইউয়ের পরিবর্তে টিএসকিউএলের মাধ্যমে এটি করছেন

ALTER TABLE YourTable ALTER COLUMN YourCol varchar(200) [NOT] NULL

এবং থেকে কলাম nullability পরিবর্তনের না NULLকরতে NOT NULL(যা টেবিল লক হতে পার, অথচ সব সারি যাচাই করা হয় এবং সম্ভাব্য লেখা ) অথবা থেকে NOT NULLথেকে NULL কিছু পরিস্থিতিতে তারপর এই একটি দ্রুত মেটাডেটা শুধুমাত্র পরিবর্তন। এটি SCH-Mটেবিলে লকটির জন্য অপেক্ষা করতে হতে পারে তবে এটি একবারে জানালে পরিবর্তনটি তাত্ক্ষণিকভাবে তাত্ক্ষণিক হবে।

সচেতন হতে হবে এক সতর্কীকরণ যার এমন কোন জন্য অপেক্ষা সময় SCH-Mলক অন্যান্য প্রশ্নের হবে বরং লাফ চেয়ে ব্লক করা কিউ এটা এগিয়ে যাতে আপনি আপনার যোগ করার বিষয়টি বিবেচনা করতে চাইবেন SET LOCK_TIMEOUTপ্রথম।

এছাড়াও ALTER TABLEবিবৃতিতে নিশ্চিত হয়ে নিন যে আপনি স্পষ্ট করে উল্লেখ করেছেন NOT NULLযে এটি যদি মূল কলামের রাজ্য হয় তবে অন্যথায় কলামটি অনুমতি দেওয়ার জন্য পরিবর্তিত হবে NULL


দ্রুত উত্তর দেওয়ার জন্য ধন্যবাদ, কেবল পরীক্ষা করা হয়েছিল। এটা প্রায় তাত্ক্ষণিক ছিল।
anataliocs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.