خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه Rename کردن Foreign Key در SQL Server

نحوه Rename کردن Foreign Key در SQL Server
در SQL Server می توانید با استفاده از stored procedure سیستمی یک foreign key را Rename کنید. هدف از این stored procedure سیستمی این است که به شما امکان تغییر اشیاء ایجاد شده توسط کاربر را بدهد. پس شما می توانید اشیاء دیگی نظیر جداول، ستون ها، alias data types و غیره را تغییر دهید.

نرم افزار سامانه مودیان راهکار
Syntax استفاده از SP سیستمی sp_rename بصورت زیر می باشد.



sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]


پس کد شما چیزی شبیه به کد زیر خواهد شد:

sp_rename 'schema_name.old_fk_name', 'new_fk_name';

توجه داشته باشید که طبق اسناد مایکروسافت هنگام تغییر نام foreign key ها باید نام موجود را همراه با نام schema قید کنید. در مثال زیر نحوه تغییر نام یک foreign key را مشاهده می کنید که در این خصوص می تواند مثال ساده و خوبی باشد.

Review All Foreign Keys

در گام نخست، تصمیم داریم با دستور زیر کلیه foreign key های موجود در دیتابیس را لیست کنیم.

SELECT
name AS 'Foreign Key',
SCHEMA_NAME(schema_id) AS 'Schema',
OBJECT_NAME(parent_object_id) AS 'Table',
OBJECT_NAME(referenced_object_id) AS 'Referenced Table'
FROM sys.foreign_keys;

+--------------------------------+----------+---------+--------------------+
| Foreign Key | Schema | Table | Referenced Table |
|--------------------------------+----------+---------+--------------------|
| FK_Albums_Artists | dbo | Albums | Artists |
| FK_Albums_Genres | dbo | Albums | Genres |
| FK__Artists__Country__4AB81AF0 | dbo | Artists | Country |
+--------------------------------+----------+---------+--------------------+

در لیست فوق FK__Artists__Country__4AB81AF0 را مشاهده می کنید توسط سیستم نامدهی شده است چرا که در زمان ایجاد آن، نامدهی به آن توسط کاربر فراموش شده است. پس اکنون سعی داریم نامی کوتاه تر و مختصر تر بدان تخصیص دهیم.

Rename the Foreign Key

با دستور زیر، کلید خارجی فوق به نامی کوتاه تر که خودمان مدنظر داریم، تغییر می کند.

sp_rename 'dbo.FK__Artists__Country__4AB81AF0', 'FK_Artists_Country';

پارامتر اول نام موجود و پارامتر دوم نام جدید است.
اگر دوباره با دستور زیر، تمامی کلیدهای خارجی را لیست کنید، به Result دیگری می رسید.

SELECT
name AS 'Foreign Key',
SCHEMA_NAME(schema_id) AS 'Schema',
OBJECT_NAME(parent_object_id) AS 'Table',
OBJECT_NAME(referenced_object_id) AS 'Referenced Table'
FROM sys.foreign_keys;


+--------------------+----------+---------+--------------------+
| Foreign Key | Schema | Table | Referenced Table |
|--------------------+----------+---------+--------------------|
| FK_Albums_Artists | dbo | Albums | Artists |
| FK_Albums_Genres | dbo | Albums | Genres |
| FK_Artists_Country | dbo | Artists | Country |
+--------------------+----------+---------+--------------------+

همانطور که مشاهده می کنید، تغییر نام کلید خارجی مربوطه با موفقیت انجام شد.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز