首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改外键名称?

问如何更改外键名称?
EN

Stack Overflow用户
提问于 2011-09-03 08:58:37
回答 2查看 11.5K关注 0票数 15

我当前正在SQL Server数据库中创建新表。我重命名了旧的表,也重命名了外键约束。

以Adventureworks DB为例,SalesOrderDetail表具有FK_SalesOrderDetail_SalesOrderHeader_SalesOrderId (它链接到SalesOrderHeader表)。

更改这个外键的名称就足够了吗?或者我还需要更改SalesOrderHeader表中的外键引用吗?

EN

回答 2

Stack Overflow用户

发布于 2011-09-03 09:01:27

只是名字--它不会以任何方式改变关系。

代码语言:javascript
复制
EXEC sp_rename 'Sales.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderId', 
                'new_name', 
                'OBJECT';

注意: AdventureWorks中的外键在Sales模式中,因此object_name参数在上面的过程调用中是模式限定的。

票数 18
EN

Stack Overflow用户

发布于 2013-01-04 19:26:43

代码语言:javascript
复制
SELECT Object_name(constraint_object_id),
       Object_name(parent_object_id),
       (SELECT name
        FROM   sys.columns
        WHERE  object_id = parent_object_id
               AND column_id = parent_column_id),
       Object_name(referenced_object_id),
       (SELECT name
        FROM   sys.columns
        WHERE  object_id = referenced_object_id
               AND column_id = referenced_column_id),
       'sp_rename ''' + Object_name(constraint_object_id) + ''', ''con_fk_' + (SELECT Lower(name)
                                                                               FROM   sys.columns
                                                                               WHERE  object_id = parent_object_id
                                                                                      AND column_id = parent_column_id) + ''',''OBJECT'''
FROM   sys.foreign_key_columns
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7290483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档