Создание в MS- SQL первичного ключа приводит к формату имени индекса Dynami c, например PK__dummy__3213E83F2E1BDC42 - PullRequest
1 голос
/ 25 мая 2020

Надеюсь на помощь по следующей проблеме. Предположим, у нас есть таблица

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 __ "динамическое c число"

Что означает это число? И как я могу определить первичные ключи, созданные с помощью версии 2 в большой базе данных?

Спасибо за подсказки.

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

Что означает это число?

Это зависит от версии продукта - он либо основан на уникальном идентификаторе, либо генерируется случайным образом.

как я могу определить первичные ключи, созданные с помощью версии 2 в огромной базе данных?

SELECT * 
FROM sys.key_constraints
WHERE is_system_named = 1
0 голосов
/ 25 мая 2020

Если вы не определяете имя ограничения, индекса, ключа и т. Д. c, SQL Сервер даст ему имя. Поэтому для обеспечения уникальности в базе данных в конце будут добавлены «случайные» символы.

Если согласованное имя важно, определите имя в своем операторе, как вы это сделали в первом операторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...