更改主键的名称

时间:2018-04-19 13:08:35

标签: sql-server

我有一个主键为AuthorCode的表,其他2个表引用了这个表。如果我在设计视图中打开此表并将列的名称更改为ID或其他内容,它会影响/删除外键约束,还是会更新这些约束,我将能够使用此?

我想更改恰好是主键的几列的名称,因为它们在编码时很难记住。这就是为什么我要确定这是否至关重要或它是否有效。

2 个答案:

答案 0 :(得分:1)

您可以使用sp_rename重命名列:

Array
(
[0] => Array
    (
        [year] => 2018
        [sample] => 4
    )

[1] => Array
    (
        [year] => 2017
        [sample] => 3
    )

[2] => Array
    (
        [year] => 2016
        [sample] => 2
    )

[3] => Array
    (
        [year] => 2015
        [sample] => 1
    )

您可以通过以下方式重命名约束:

Array
(
[0] => Array
    (
        [year] => 2016
        [voucher] => 7
        [sample] => 2
    )

[1] => Array
    (
        [year] => 2017
        [voucher] => 9
        [sample] => 3
    )

[2] => Array
    (
        [year] => 2018
        [voucher] => 6
        [sample] => 4
    )

[3] => Array
    (
        [year] => 2015
        [voucher] => 1
        [sample] => 1
    )

[4] => Array
    (
        [year] => 2014
        [voucher] => 2
    )

MS文档在这里:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-rename-transact-sql?view=sql-server-2017

答案 1 :(得分:0)

如果使用sp_rename执行此操作,则重命名列不会影响其约束。要更改列名称,您可以使用:

EXEC sp_rename 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';