由于以下问题,希望得到帮助。假设我们有一个表
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 将为其命名。因此,为了确保整个数据库的唯一性,它将在末尾添加"随机"字符。
如果具有一致的名称很重要,请在语句中定义名称,就像在第一个语句中所做的那样。