sql - কলাম এসকিউএল সার্ভার 2008 নামকরণ




sql-server sql-server-2008 (7)

@ তাহার উন্নত সংস্করণ

DECLARE @SchemaName AS VARCHAR(128)
DECLARE @TableName AS VARCHAR(128)
DECLARE @OldColumnName AS VARCHAR(128)
DECLARE @NewColumnName AS VARCHAR(128)
DECLARE @ParamValue AS VARCHAR(1000)

SET @SchemaName = 'dbo'
SET @TableName = 'tableName'
SET @OldColumnName = 'OldColumnName'
SET @NewColumnName = 'NewColumnName'
SET @ParamValue = @SchemaName + '.' + @TableName + '.' + @OldColumnName

IF EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @OldColumnName AND OBJECT_NAME(object_id) = @TableName
)
AND NOT EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @NewColumnName AND OBJECT_NAME(object_id) = @TableName
)
BEGIN
    EXEC sp_rename @ParamValue, @NewColumnName, 'COLUMN';
END

আমি এসকিউএল সার্ভার 2008 এবং নেভিক্যাট ব্যবহার করছি। আমি এসকিউএল ব্যবহার করে একটি টেবিলে একটি কলামের নামকরণ করতে হবে।

ALTER TABLE table_name RENAME COLUMN old_name to new_name;

এই বিবৃতি কাজ করে না।


অথবা আপনি কেবল এসকিউএল ম্যানেজমেন্ট স্টুডিওতে কলামে দুইবার ধীর-ক্লিক করতে পারেন এবং এটি UI এর মাধ্যমে পুনঃনামকরণ করতে পারেন ...


আপনি টেবিলের স্কিমা নির্দিষ্ট করতে বা আপনি এই ত্রুটি পেতে পারে:

বার্তা 15248, স্তর 11, রাজ্য 1, প্রক্রিয়া sp_rename, লাইন 238 হয় উভয় প্যারামিটার @objname দ্বিধান্বিত বা দাবি @objtype (COLUMN) ভুল।

এটি একটি স্থাপনা স্ক্রিপ্ট থাকলে আমি এটিতে কিছু অতিরিক্ত সুরক্ষা যোগ করার সুপারিশ করব।

    if  exists (select 1 from sys.columns where name = 'OldColumnName' and object_name(object_id) = 'TableName') AND
not exists (select 1 from sys.columns where name = 'NewColumnName' and object_name(object_id) = 'TableName')
EXEC sp_RENAME 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';

এটি ইতিমধ্যে একটি বিল্ট-ইন ফাংশন ব্যবহার করার জন্য একটি ভাল পরামর্শ হবে তবে অন্য উপায়টি হল:

  1. একই ডাটা টাইপ এবং নতুন NAME দিয়ে একটি নতুন কলাম তৈরি করুন।
  2. সমস্ত তথ্য নতুন কলামে অনুলিপি করতে একটি আপডেট / ইনসার্ট স্টেটমেন্ট চালান।
  3. পুরানো কলাম ড্রপ।

sp_rename ব্যবহার করে পিছনে সুবিধা হল এটি এটির সাথে সম্পর্কিত সকল সম্পর্কের যত্ন নেয়।

documentation থেকে:

যখনই একটি প্রাথমিক কী বা অনন্য সীমাবদ্ধতা পুনঃনামকরণ করা হয় তখন sp_rename স্বয়ংক্রিয়ভাবে সংশ্লিষ্ট সূচী পুনঃনামকরণ করে। যদি একটি নামযুক্ত সূচী একটি প্রাথমিক কী সীমাবদ্ধতার সাথে সংযুক্ত থাকে, তবে প্রাথমিক কী সীমা স্বয়ংক্রিয়ভাবে sp_rename দ্বারা পুনঃনামকরণ করা হয়। sp_rename প্রাথমিক এবং মাধ্যমিক XML সূচীগুলিকে পুনঃনামকরণ করতে ব্যবহার করা যেতে পারে।


চেষ্টা করুন:

EXEC sp_rename 'TableName.OldName', 'NewName', 'COLUMN'

বিকল্পভাবে SQL , আপনি মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে এটি করতে পারেন। GUI ব্যবহার করে এখানে কয়েকটি দ্রুত উপায় রয়েছে:

প্রথম উপায়

ধাপে ডাবল ক্লিক করুন কলাম। কলাম নাম একটি সম্পাদনাযোগ্য টেক্সট বক্স হয়ে যাবে।

দ্বিতীয় উপায়

কলামে ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে পুনঃনামকরণ চয়ন করুন।

উদাহরণ স্বরূপ:

তৃতীয় উপায়

আপনি যখন একাধিক কলাম পুনঃনামকরণ করতে হবে তখন এই পদ্ধতিটি অগ্রাধিকারযোগ্য।

  1. টেবিলে রাইট-ক্লিক করুন যার মধ্যে কলাম রয়েছে যা পুনঃনামকরণের প্রয়োজন।
  2. ডিজাইন ক্লিক করুন।
  3. টেবিল নকশা প্যানেলে, আপনি যে কলামের নাম পরিবর্তন করতে চান তার পাঠ্যবক্সটি ক্লিক এবং সম্পাদনা করুন।

উদাহরণ স্বরূপ:

দ্রষ্টব্য: আমি বিশেষভাবে এসকিউএল সমাধান জন্য জিজ্ঞাসা OP জানি, এই অন্যদের সাহায্য করতে পারে চিন্তা :)


sp_rename ব্যবহার করুন

EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'

দেখুন: এসকিউএল সার্ভার - একটি কলামের নাম বা সারণি নাম পুনঃনামকরণ কিভাবে

ডকুমেন্টেশন: sp_rename ( ট্র্যাক্ট্যাক্ট -এসকিউএল)

আপনার ক্ষেত্রে এটি হবে:

EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'

আপনার মান আবদ্ধ একক উদ্ধৃতি ব্যবহার করতে মনে রাখবেন।





alter-table