আমি SQL সার্ভার ডাটাবেস আছে এবং আমি শুধু বুঝতে পারেন যে আমি থেকে কলামের এক ধরণ পরিবর্তন করতে পারেন int
থেকে bool
।
ইতিমধ্যে সেই টেবিলটিতে প্রবেশ করা ডেটা না হারিয়ে আমি কীভাবে এটি করতে পারি?
আমি SQL সার্ভার ডাটাবেস আছে এবং আমি শুধু বুঝতে পারেন যে আমি থেকে কলামের এক ধরণ পরিবর্তন করতে পারেন int
থেকে bool
।
ইতিমধ্যে সেই টেবিলটিতে প্রবেশ করা ডেটা না হারিয়ে আমি কীভাবে এটি করতে পারি?
উত্তর:
আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি সহজেই করতে পারেন। 0 এর যে কোনও মান 0 তে (বিআইটি = মিথ্যা) রূপান্তরিত হবে, অন্য যে কোনও কিছুই 1 (বিআইটি = সত্য) তে রূপান্তরিত হবে।
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
অন্য বিকল্পটি হ'ল একটি নতুন কলাম তৈরি করুন BIT
, এটি পুরানো কলামটি থেকে পূরণ করুন, এবং আপনার কাজ শেষ হয়ে গেলে, পুরানো কলামটি ফেলে দিন এবং নতুনটির নাম পুরানো নামে রাখবেন। এইভাবে, যদি রূপান্তরকালে কোনও কিছু ভুল হয়ে যায় তবে আপনি সবসময়ই ফিরে যেতে পারেন যেহেতু আপনার কাছে এখনও সমস্ত ডেটা রয়েছে ..
NULL
অবশেষ NULL
, 0
হয়ে যায় False
, অ-শূন্য মান (1, -1, 1999, -987 ...) হয়ে যায় True
।
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
দ্রষ্টব্য: যদি কলামগুলির আকার থাকে তবে কেবল আকারটিও লিখুন।
যদি এটি একটি বৈধ পরিবর্তন।
আপনি সম্পত্তি পরিবর্তন করতে পারেন।
সরঞ্জাম -> বিকল্পগুলি -> ডিজাইনার -> টেবিল এবং ডেটাবেস ডিজাইনার -> আনচেক করুন -> সারণী পুনরায় তৈরির জন্য প্রয়োজনীয় পরিবর্তনগুলি সংরক্ষণ করা প্রতিরোধ করুন।
এখন আপনি টেবিলটি পুনরায় তৈরি করা বা আপনার রেকর্ডগুলি না হারিয়ে সহজেই কলামের নামটি পরিবর্তন করতে পারেন।
আপনি কেন ডেটা হারাবেন বলে মনে করেন? কেবল ম্যানেজমেন্ট স্টুডিওতে যান এবং ডেটা টাইপ পরিবর্তন করুন। যদি বিদ্যমান মানটিকে বিলে (বিট) রূপান্তর করা যায় তবে এটি তা করবে। অন্য কথায়, যদি "1" মানচিত্রটি সত্য হয় এবং "0" মানচিত্রগুলি যদি আপনার মূল ক্ষেত্রে মিথ্যা হয় তবে আপনি ভাল হয়ে যাবেন।
আপনি যদি টি-এসকিউএল (এমএসএসকিউএল) ব্যবহার করেন; আপনার এই লিপিটি চেষ্টা করা উচিত:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
আপনি যদি মাইএসকিউএল ব্যবহার করেন; আপনার এই লিপিটি চেষ্টা করা উচিত:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
যদি আপনি ওরাকল ব্যবহার করেন; আপনার এই লিপিটি চেষ্টা করা উচিত:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
চেক প্রকারের কলামের সাথে কলামের ডেটা টাইপ পরিবর্তন করুন:
IF EXISTS(
SELECT 1
FROM sys.columns
WHERE NAME = 'YourColumnName'
AND [object_id] = OBJECT_ID('dbo.YourTable')
AND TYPE_NAME(system_type_id) = 'int'
)
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
আমার জন্য, স্ক্যুয়াল সার্ভার ২০১ 2016 সালে, আমি এটি এটি করি
কলাম 1 কলাম 1 নাম কলাম 2 এ নামকরণ করতে
EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'
* কলামটি স্ট্রিং থেকে ইনট অবধি সংশোধন করতে :( দয়া করে নিশ্চিত হন যে ডেটা সঠিক ফর্ম্যাটে রয়েছে )
ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2 int;
আমি নিম্নলিখিত প্রশ্নের সাথে টেবিল ক্ষেত্রের ডেটাটাইপটি সংশোধন করতে পারি: এবং ওরাকল ডিবিতেও,
ALTER TABLE table_name
MODIFY column_name datatype;
ডেটাটাইপটি ডেটা না হারিয়ে প্রতিস্থাপন করুন
alter table tablename modify columnn newdatatype(size);