2009-02-14 5 views

ответ

28

Это просто означает, что столбец использует функцию 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, поскольку он обесценивается и может возвращать неправильный результат в случае триггеров или вложенных контекстов.

4

Флаг, указывающее тождество столбца - может быть использован в качестве столбца автоинкрементного (рекомендуется для любой таблицы)

она имеет много последствий, таких как возможность получить идентификатор последней вставленной строки в таблице с помощью @ @IDENTITY или SCOPE_IDENTITY() и т.д.

Try: Understanding Identity Columns

+0

Да. Это так. Большое спасибо!!!! – Niyaz

+0

обновленный комментарий с дополнительной информацией. не забудьте проголосовать за ответ. Спасибо – IEnumerator

+1

Не используйте @@ IDENTITY. Это ненадежно, если в таблице есть триггер, который помещает данные в другую таблицу, на которой есть столбец идентификатора. @@ IDENTITY вернет неправильное значение. – mrdenny

1

Это эквивалентно свойству AUTO_INCREMENT в MySQL. Обычно используется на столбец первичного ключа

0

Все функции SQL Server IDENTITY свойство столбцов. И удобная процедура для мониторинга всех столбцов Identity. http://www.sqllion.com/2011/08/identity-in-sql/

+2

Добро пожаловать в переполнение стека! Хотя это теоретически может ответить на вопрос, [было бы предпочтительнее] (http://meta.stackexchange.com/q/8259) включить основные части ответа здесь и предоставить ссылку для справки. – Kev

Смежные вопросы