আমি এসকিউএল সার্ভার 2008 এবং নাভিচ্যাট ব্যবহার করছি। এসকিউএল ব্যবহার করে আমার একটি টেবিলের একটি কলামের নাম পরিবর্তন করতে হবে।
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
এই বিবৃতি কাজ করে না।
আমি এসকিউএল সার্ভার 2008 এবং নাভিচ্যাট ব্যবহার করছি। এসকিউএল ব্যবহার করে আমার একটি টেবিলের একটি কলামের নাম পরিবর্তন করতে হবে।
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
এই বিবৃতি কাজ করে না।
উত্তর:
ব্যবহার sp_rename
EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'
দেখুন: এসকিউএল সার্ভার - কীভাবে একটি কলামের নাম বা সারণির নাম পরিবর্তন করতে হবে
ডকুমেন্টেশন: sp_rename (লেনদেন-এসকিউএল)
আপনার ক্ষেত্রে এটি হবে:
EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'
আপনার মানগুলি বদ্ধ করার জন্য একক উদ্ধৃতি ব্যবহার করতে ভুলবেন না।
EXEC sp_RENAME '[TableName].[OldColumnName]', 'NewColumnName', 'COLUMN'
alter table
যে যদি এই ধরনের সীমাবদ্ধতা অস্তিত্ব ব্যর্থ হবে।
বিকল্প হিসাবে SQL
, আপনি মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে এটি করতে পারেন। জিইউআই ব্যবহারের কয়েকটি দ্রুত উপায় এখানে রয়েছে:
কলামটিতে ধীরে ধীরে ডাবল ক্লিক করুন। কলামের নাম একটি সম্পাদনাযোগ্য পাঠ্য বাক্সে পরিণত হবে।
কলামে ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে নাম পরিবর্তন করুন choose
উদাহরণ স্বরূপ:
আপনি যখন একসাথে একাধিক কলামের নাম পরিবর্তন করতে পারেন তখন এই উপায়টি পছন্দনীয়।
উদাহরণ স্বরূপ:
দ্রষ্টব্য: আমি জানি ওপি বিশেষত এসকিউএল সমাধানের জন্য জিজ্ঞাসা করেছিল, ভেবেছিল এটি অন্যকে সহায়তা করতে পারে :)
আপনার টেবিলের স্কিমাও নির্দিষ্ট করা উচিত বা আপনি এই ত্রুটিটি পেতে পারেন:
এমএসজি 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';
ইতিমধ্যে অন্তর্নির্মিত ফাংশনটি ব্যবহার করা ভাল পরামর্শ হবে তবে এর অন্য উপায়টি হ'ল:
sp_rename
এটি ব্যবহার করার পিছনে সুবিধা হ'ল এটি এর সাথে সম্পর্কিত সমস্ত সম্পর্কের যত্ন নেয়।
ডকুমেন্টেশন থেকে :
sp_rename স্বয়ংক্রিয়ভাবে সম্পর্কিত সূচকটির নতুন নামকরণ করে যখনই কোনও প্রাথমিক কী বা অনন্য প্রতিবন্ধকতার নাম পরিবর্তন করা হয়। যদি কোনও নামকরণের সূচকটি একটি মূল কী বাধাটির সাথে আবদ্ধ থাকে তবে প্রাথমিক কী বাধাও স্বয়ংক্রিয়ভাবে sp_rename দ্বারা নামকরণ করা হয়। sp_rename প্রাথমিক এবং গৌণ এক্সএমএল সূচকগুলির নাম পরিবর্তন করতে ব্যবহৃত হতে পারে।
আপনি sp_rename
একটি কলামটির নাম পরিবর্তন করতে ব্যবহার করতে পারেন ।
USE YourDatabase;
GO
EXEC sp_rename 'TableName.OldColumnName', 'NewColumnName', 'COLUMN';
GO
প্রথম প্যারামিটার বস্তুর পরিবর্তন করা হয়, দ্বিতীয় প্যারামিটারটি নতুন নাম যে বস্তুর দেওয়া হবে, এবং তৃতীয় প্যারামিটারটি কলামটি জানায় যে সার্ভার এই পুনঃনামকরণ জন্য column
, এবং এছাড়াও নামান্তর করতে ব্যবহার করা যেতে পারে tables
, index
এবং alias data type
।
যেহেতু আমি প্রায়শই এখানে আসি এবং তারপরে বন্ধনীগুলি কীভাবে ব্যবহার করব তা ভাবছি, এই উত্তরটি আমার মতো তাদের পক্ষে কার্যকর হতে পারে।
EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN';
OldColumnName
মধ্যে রাখা যাবে না []
। এটি কাজ করবে না.NewColumnName
মধ্যে []
, তা হবে [[NewColumnName]]
।এসকিএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে কিছু সিস্টেম সংজ্ঞায়িত স্টোরড
প্রসেসারস (এসপি) রয়েছে যার মধ্যে একটি কলামের নাম পরিবর্তন করতে ব্যবহৃত হয় SP এসপিটি sp_rename
সিনট্যাক্স: sp_rename '[টেবিলের নাম] .old_column_name', 'new_column_name'
আরও সহায়তার জন্য এই নিবন্ধটি উল্লেখ করুন: মাইক্রোসফ্ট ডক্স দ্বারা sp_rename
দ্রষ্টব্য: এই এসপি কার্যকর করার সময় স্কেল সার্ভারটি আপনাকে সাবধানতা হিসাবে একটি সতর্কতা বার্তা দেবে : সাবধানতা: কোনও বস্তুর নামের কোনও অংশ পরিবর্তন করা স্ক্রিপ্টগুলি এবং সঞ্চিত পদ্ধতিগুলিকে ভেঙে ফেলতে পারে । এটি কলামের সাথে জড়িত আপনার নিজের এসপি লিখে থাকলেই এটি গুরুত্বপূর্ণ his সারণীতে আপনি পরিবর্তন করতে চলেছেন।
@ তাহেরের উন্নত সংস্করণ
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
রান ক্যোয়ারী:
SP_RENAME '[TableName].[ColumnName]','NewNameForColumn'