在 MS-SQL 中创建主键会导致动态索引名称格式,例如 PK__dummy__3213E83F2E1BDC42



由于以下问题,希望得到帮助。假设我们有一个表

CREATE TABLE [dbo].[dummy](
[id] [char](36) NOT NULL,
[name] [varchar](50) NOT NULL
) ON [PRIMARY]

如果我像这样创建主键(版本 1(

ALTER TABLE dummy ADD CONSTRAINT PK_dummy PRIMARY KEY (ID);

我有一个独特的名字。在这种情况下PK_dummy。 但是如果我像这样创建一个主键(版本 2(

ALTER TABLE dummy ADD PRIMARY KEY Clustered (ID); 

每次重新创建此主键时,名称都会更改。 格式始终PK__dummy__"动态数字"

这个数字是什么意思? 如何识别在 hugh 数据库中使用版本 2 创建的主键?

感谢您的提示。

这个数字是什么意思?

这取决于产品版本 - 它要么基于唯一 ID,要么随机生成。

如何在庞大的数据库中识别使用版本 2 创建的主键?

SELECT * 
FROM sys.key_constraints
WHERE is_system_named = 1

如果未定义约束、索引、键等的名称,SQL Server 将为其命名。因此,为了确保整个数据库的唯一性,它将在末尾添加"随机"字符。

如果具有一致的名称很重要,请在语句中定义名称,就像在第一个语句中所做的那样。

最新更新