Автоинкремент (IDENTITY в SQL Server) — это специальное свойство столбца, которое автоматически генерирует уникальные последовательные числовые значения при вставке новых строк. Это мощный инструмент для создания первичных ключей и уникальных идентификаторов.
Автоматическое управление:
Типичное использование:
CREATE TABLE Orders (
OrderID INT IDENTITY(1,1) PRIMARY KEY,
OrderDate DATETIME
)
Где:
При вставке:
Гарантии:
IDENTITY(start, increment)
AUTO_INCREMENT
SERIAL или GENERATED ALWAYS AS IDENTITY
Переопределение IDENTITY:
SET IDENTITY_INSERT Orders ON
INSERT INTO Orders (OrderID, OrderDate) VALUES (10, GETDATE())
SET IDENTITY_INSERT Orders OFF
Получение последнего значения:
SELECT SCOPE_IDENTITY() -- для текущей сессии
SELECT @@IDENTITY -- для любого соединения
Сброс счетчика:
DBCC CHECKIDENT ('Orders', RESEED, 100)
Типы данных:
Изменения:
Репликация:
SEQUENCE (SQL Server 2012+):
CREATE SEQUENCE OrderSeq START WITH 1 INCREMENT BY 1
CREATE TABLE Orders (
OrderID INT DEFAULT NEXT VALUE FOR OrderSeq
)
GUID:
CREATE TABLE Orders (
OrderID UNIQUEIDENTIFIER DEFAULT NEWID()
)
Автоинкремент — это эффективный механизм для автоматической генерации уникальных идентификаторов, который значительно упрощает разработку и обеспечивает целостность данных. При правильном использовании он становится надежной основой для систем идентификации записей в таблицах, хотя и требует понимания его особенностей и ограничений в различных СУБД.