উত্তর:
একটি বিকল্প হিসাবে আপনি প্রাথমিকভাবে নাল-সক্ষম কলাম তৈরি করতে পারেন, তারপরে বৈধ নয় নাল মানগুলির সাথে আপনার টেবিল কলামটি আপডেট করুন এবং অবশেষে নাল নয় বাধা সেট করার জন্য ALTER কলামটি পরিবর্তন করুন:
ALTER TABLE MY_TABLE ADD STAGE INT NULL
GO
UPDATE MY_TABLE SET <a valid not null values for your column>
GO
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL
GO
অন্য বিকল্পটি হ'ল আপনার কলামের জন্য সঠিক ডিফল্ট মান নির্দিষ্ট করা:
ALTER TABLE MY_TABLE ADD STAGE INT NOT NULL DEFAULT '0'
ইউপিডি: দয়া করে নোট করুন যে উপরের উত্তরে এমনটি রয়েছে GO
যা আপনি যখন মাইক্রোসফ্ট এসকিউএল সার্ভারে এই কোডটি চালাবেন তখন আবশ্যক। আপনি যদি ওরাকল বা মাইএসকিউএল তে একই ক্রিয়াকলাপ সম্পাদন করতে চান তবে আপনাকে সেমিকোলনটি এর ;
মতো ব্যবহার করতে হবে :
ALTER TABLE MY_TABLE ADD STAGE INT NULL;
UPDATE MY_TABLE SET <a valid not null values for your column>;
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL;
update
আপনার উল্লেখ করা বিপজ্জনক বক্তব্য যে কোনও প্রশ্নের পক্ষে ক্ষতিকারক হবে। update
এখানে বিবৃতিতে আপনার অতিরিক্ত কলাম রয়েছে কিনা তা দেখার জন্য এটি যথেষ্ট সহজ হওয়া উচিত । আপনি সাধারণত একবারে কেবল দুটি কলাম যুক্ত করবেন। update
উদাহরণস্বরূপ, আপনি যদি নিজের বিবৃতিতে কোনও অতিরিক্ত কলাম যুক্ত করেন না যা এই উদাহরণে নেই, তবে সম্ভবত আপনাকে প্রথমে ডেটার দায়িত্বে থাকা উচিত নয়।
ALTER COLUMN
এসকিউএলাইটে সমর্থিত নয়।
GO
আগে কখনও দেখিনি এবং এটি এসকিউএল স্পেসিফিকেশনের একটি অংশ হিসাবে উপস্থিত হবে না বলে মনে হয় , সুতরাং এটি সম্ভবত যে কোনও সরঞ্জাম দ্বারা সমর্থন করে কোনও স্ক্রিপ্টগুলি কার্যকর না করে ব্যর্থতার দিকে পরিচালিত করবে। শুধু সেমিকোলন ব্যবহার করবেন? আমি মাইক্রোসফ্ট স্ট্যান্ডার্ডগুলি ছড়িয়ে দেওয়ার পরামর্শ দিচ্ছি না কারণ তারা কোনও প্রতিষ্ঠিত এবং যুক্তিসঙ্গত মান সম্পর্কে খুব কমই চিন্তা করে তবে তাদের নিজস্ব আবিষ্কার করার জন্য তাদের নিজস্ব আবিষ্কার করে। তা ছাড়াও সহায়ক উত্তর।
আপনি যদি কলামটি নাল হতে দিচ্ছেন না তবে বিদ্যমান সারিগুলি তৈরি করতে আপনাকে একটি ডিফল্ট সরবরাহ করতে হবে। যেমন
ALTER TABLE dbo.YourTbl ADD
newcol int NOT NULL CONSTRAINT DF_YourTbl_newcol DEFAULT 0
এন্টারপ্রাইজ সংস্করণে এটি কেবলমাত্র 2012 সাল থেকে একটি মেটাডেটা পরিবর্তন হয়েছে
ত্রুটি বার্তাটি বেশ বর্ণনামূলক, চেষ্টা করুন:
ALTER TABLE MyTable ADD Stage INT NOT NULL DEFAULT '-';
অন্যান্য এসকিউএল বাস্তবায়নের অনুরূপ বিধিনিষেধ রয়েছে। কারণ হলো কলামের জন্য মান যোগ (কথাটি, এমনকি যদি শারীরিকভাবে নয়), যা ডিফল্টভাবে যে একটি কলাম যোগ প্রয়োজন NULL
। আপনি যদি অনুমতি না দেন NULL
এবং একটি না রাখেন default
তবে মানটি কী হতে চলেছে?
যেহেতু এসকিউএল সার্ভার সমর্থন করে ADD CONSTRAINT
, আমি প্যাভেলকে একটি অবনমিত কলাম তৈরি করার পদ্ধতির পরামর্শ দিচ্ছি এবং তারপরে NOT NULL
এটি অ- NULL
মান সহ পূরণ করার পরে একটি সীমাবদ্ধতা যুক্ত করব ।
ALTER TABLE `MY_TABLE` ADD COLUMN `STAGE` INTEGER UNSIGNED NOT NULL AFTER `PREV_COLUMN`;
Alter TABLE 'TARGET' add 'ShouldAddColumn' Integer Not Null default "0"