Столбец идентификаторов — это столбец (также известный как поле ) в таблице базы данных , который состоит из значений, сгенерированных базой данных. Это очень похоже на поле AutoNumber в Microsoft Access или последовательность в Oracle . Поскольку эта концепция так важна в науке о базах данных , многие системы RDBMS реализуют некоторый тип сгенерированного ключа, хотя каждая из них имеет свою собственную терминологию. Сегодня популярным методом генерации идентификаторов является генерация случайного UUID .
Столбец идентификаторов отличается от первичного ключа тем, что его значения управляются сервером и обычно не могут быть изменены. Во многих случаях столбец идентификаторов используется как первичный ключ; однако это не всегда так.
Распространенное заблуждение, что столбец идентификаторов будет обеспечивать уникальность; однако это не так. Если вы хотите обеспечить уникальность столбца, вы также должны включить соответствующее ограничение.
В Microsoft SQL Server у вас есть варианты как для начального значения (начального значения), так и для приращения. По умолчанию начальное значение и приращение равны 1.
Создать таблицу Контакты ( FirstName varChar ( 30 ), LastName varChar ( 30 ), Phone varChar ( 16 ), ContactID int identity ( 1 , 1 ) )
или
Создать таблицу Контакты ( FirstName varChar ( 30 ), LastName varChar ( 30 ), Phone varChar ( 16 ) ) GO Изменить таблицу Контакты Добавить ContactID int identity ( 1 , 1 )
CREATE TABLE contact ( contact_id bigint ГЕНЕРИРУЕТСЯ ВСЕГДА КАК IDENTITY , first_name varchar , last_name varchar , phone varchar );
Часто бывает полезно или необходимо знать, какое значение идентификатора было сгенерировано командой INSERT . Microsoft SQL Server предоставляет несколько функций для этого: @@IDENTITY предоставляет последнее значение, сгенерированное в текущем соединении в текущей области, в то время как IDENT_CURRENT( tablename ) предоставляет последнее сгенерированное значение, независимо от соединения или области, в которой оно было создано.
Пример:
Вставить в Контакты ( FirstName , LastName ) Значения ( 'Test' , 'User' ) — Выбрать @@Identity — ИЛИ — Объявить @ID int Выбрать @ID = @@Identity Обновить Контакты Установить Телефон = 'XXX-YYY-ZZZZ' Где ContactID = @ID