Что означает свойство "Идентичность" в SQL Server?
Я использую SQL Server в первый раз, и я вижу, что свойство столбца называется Идентичность.
Что это значит?
В чем преимущества маркировки свойства столбца как Is Identity = Yes?
Ответ 1
Это просто означает, что столбец использует функцию Identity(seed, increment) для предоставления значений для первичного ключа (обычно). Он также известен как "Автономный номер". Вторая строка ниже - пример:
CREATE TABLE Table (
TableID bigint IDENTITY(1,1) NOT NULL,
DateTimeStamp datetime NOT NULL DEFAULT (getdate()),
Data nvarchar(100) NOT NULL,
CONSTRAINT PK_Table PRIMARY KEY CLUSTERED
(
TableID ASC
)
Он действует как значение по умолчанию для столбца, который увеличивается для каждой записи. Обратите внимание, что вы также можете получить значение, вставленное из SCOPE_IDENTITY(). Не используйте @@IDENTITY, поскольку он обесценивается и может возвращать неправильный результат в случае триггеров или вложенных контекстов.
Ответ 2
Флаг с указанием столбца Identity - может использоваться как столбец с автоматическим приращением (рекомендуется для любой таблицы)
у него много последствий, например, возможность получить идентификатор последней вставленной строки в таблице, используя @@IDENTITY или SCOPE_IDENTITY() и т.д.