我刚从另一位开发人员那里接手了一个数据库,并查看了sys.objects
表,通过约束进行过滤。
DF__role_sett__custo__4589517F
是什么意思-尤其是字符串末尾的ID是什么意思?
我知道DF_role_sett_custo
表示role_setting_customer
的默认约束,但不确定最后一个ID4589517f
的含义。
我刚从另一位开发人员那里接手了一个数据库,并查看了sys.objects
表,通过约束进行过滤。
DF__role_sett__custo__4589517F
是什么意思-尤其是字符串末尾的ID是什么意思?
我知道DF_role_sett_custo
表示role_setting_customer
的默认约束,但不确定最后一个ID4589517f
的含义。
如果在创建约束时没有为其命名,SQL Server 将根据表格和列分配一个随机名称。它附加一个随机数,以避免与现有约束名称冲突。
几乎在所有情况下,最好在创建约束时命名它。这样在其他 T-SQL 语句中更容易按名称引用约束。
例如,在以下创建语句中:
CREATE TABLE dbo.some_table(
some_field INT NOT NULL DEFAULT(5)
);
默认约束将被分配一个随机名称。在此语句中:
CREATE TABLE dbo.some_table(
some_field INT NOT NULL CONSTRAINT DF_some_table_some_field DEFAULT(5)
);
默认约束将使用您分配给它的名称(即DF_some_table_some_field
)。
4589517F
是约束名的一部分。每个约束都有一个名称,无论是您分配的还是由SQL Server分配的。某些T-SQL语句要求您命名约束,例如marc_s指出的:禁用约束或删除约束。 - TT.