【问题标题】:Naming for contraints when creating a table创建表时为约束命名
【发布时间】:2015-02-17 23:52:39
【问题描述】:

我在系统中看到以下 SQL:

create table Account
(
    [AccountId] int not null,
    [EquityStatus] int not null constraint DF_Account_EquityStatus default(1),
    [DerivativeStatus] int not null constraint DF_Account_DerivativeStatus default(1),
    [HasSecurityAgreement] tinyint not null constraint DF_Account_HasSecurityAgreement default(0),
    ...
)

为什么它为几乎每一列命名每个约束?这样做有什么好处吗?

【问题讨论】:

    标签: sql constraints create-table


    【解决方案1】:

    您可以让您的系统为您的约束分配一个系统生成的名称,但是从维护的角度来看,如果您想稍后更改或删除约束 - 您通常必须按名称执行此类操作,并且如果您让系统自动生成名称,您将不知道要使用的正确名称。

    此外,如果脚本是您的主要部署方式,并且您有多个环境(例如开发、登台、测试等),那么系统生成的名称在每个环境中都会有所不同,这使得您想要进行比较变得更加困难两种环境来确定当前的差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 2020-12-11
      相关资源
      最近更新 更多