উত্তর:
এসকিউএল সার্ভারে একটি সারণীর নাম পরিবর্তন করতে, sp_rename
কমান্ডটি ব্যবহার করুন :
exec sp_rename 'schema.old_table_name', 'new_table_name'
'NewName'
ক্ষেত্র, অন্যথায় আপনার টেবিল ভালো কিছু খুঁজছেন শেষ পর্যন্ত হতে পারে dbo.dbo.NewName
।
CREATE SYNONYM [schema].[synonymName] FOR [schema].[tableName]
একটি কলামের নাম পরিবর্তন করতে:
sp_rename 'table_name.old_column_name', 'new_column_name' , 'COLUMN';
একটি সারণীর নামকরণ করতে:
sp_rename 'old_table_name','new_table_name';
উপরের উত্তরগুলির মতো কাজ করে এমন sp_rename ব্যবহার করার সময়, নাম পরিবর্তন করার পরে কোন বিষয়গুলি প্রভাবিত হয় তাও পরীক্ষা করে দেখুন, সেই টেবিলটি উল্লেখ করেছেন, কারণ আপনারও সেগুলি পরিবর্তন করতে হবে
আমি এখানে পিনাল ডেভের ব্লগে টেবিল নির্ভরতার জন্য একটি কোড উদাহরণ নিয়েছি
USE AdventureWorks
GO
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'Customer'
সুতরাং, এই সমস্ত নির্ভরশীল অবজেক্টগুলিকেও আপডেট করা দরকার
অথবা আপনি যদি পারেন তবে কিছু অ্যাড-ইন ব্যবহার করুন, তাদের মধ্যে কয়েকটিতে অবজেক্টের নামকরণের বৈশিষ্ট্য রয়েছে এবং সমস্ত নির্ভরশীল, এনট অবজেক্টগুলিও রয়েছে
আপনি যদি exec sp_rename
লক ম্যাচআইডিআইডি ত্রুটিটি চেষ্টা করে ও গ্রহণ করেন তবে এটি প্রথমে একটি ব্যবহার [ডাটাবেস] বিবৃতি যুক্ত করতে সহায়তা করতে পারে:
আমি চেষ্টা করেছিলাম
exec sp_rename '[database_name].[dbo].[table_name]', 'new_table_name';
-- Invalid EXECUTE statement using object "Object", method "LockMatchID".
এটি ঠিক করতে আমাকে যা করতে হয়েছিল তা তা এটিকে আবার লিখতে হয়েছিল:
use database_name
exec sp_rename '[dbo].[table_name]', 'new_table_name';
সারণীর নাম
sp_rename 'db_name.old_table_name', 'new_table_name'
স্তম্ভ
sp_rename 'db_name.old_table_name.name' 'userName', 'COLUMN'
সূচক
sp_rename 'db_name.old_table_name.id', 'product_ID', 'INDEX'
স্ট্যাটিক্স এবং ডেটাটাইপগুলির জন্যও উপলব্ধ
এটি আমি ব্যবহার করি:
EXEC sp_rename 'MyTable', 'MyTableNewName';
প্রস্তাবিত থেকে এখানে কোনও কাজ হয়নি .. সুতরাং কেবলমাত্র নতুন টেবিলে ডেটাটি ছিটিয়ে দেওয়া হয়েছে
SELECT *
INTO [acecodetable].['PSCLineReason']
FROM [acecodetable].['15_PSCLineReason'];
কারও জন্য দরকারী হতে পারে ..
আমার ক্ষেত্রে এটি নতুন স্কিমাটিকে স্বীকৃতি দেয়নি এটির ডিবিওও ছিল মালিক ..
হালনাগাদ
EXECUTE sp_rename N'[acecodetable].[''TradeAgreementClaim'']', N'TradeAgreementClaim';
আমার জন্য কাজ করেছেন। সারণীর একটির জন্য পিকে আপডেট করার সময় আমি এটি স্বয়ংক্রিয়ভাবে উত্পন্ন স্ক্রিপ্ট থেকে পেয়েছি। এইভাবে এটি নতুন স্কিমাকেও স্বীকৃতি দিয়েছে ...
একটি আলাদা স্কিমা সহ একটি টেবিলের নাম পরিবর্তন করতে:
উদাহরণ: dbo.MyTable1 কে wrk.MyTable2 এ পরিবর্তন করুন
EXEC SP_RENAME 'dbo.MyTable1', 'MyTable2'
ALTER SCHEMA wrk TRANSFER dbo.MyTable2
.
ব্যবহার করুন[]
। (আমি জানি, আমি জানি, তবে বিন্দুগুলি ঘটতে পারে ...) উদাহরণস্বরূপsp_rename '[Stupid.name]', 'NewName'
বা স্কিমা সহsp_rename '[dbo.Stupid.name]', 'NewName'