views:

1850

answers:

4

I am using SQL Server for the first time and I see that a column property is called Is Identity.

What doeds this mean?

What are the advantages of marking a column property as Is Identity = Yes ?

Thanks in advance.

+8  A: 

It simply means the column uses the Identity(increment, seed) function to provide values for a primary key (usually). It is also known as "Autonumber". The second line below is an example:

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
)

It acts as a default value for the column that increments for each record. Note that you can also get the value inserted from SCOPE_IDENTITY(). Do not use @@IDENTITY as it is depreciated and can return the wrong result in the case of triggers or nested contexts.

Godeke
+4  A: 

Flag indicating an Identity Column - can be used as an auto-increment column (recommended for any table)

it has many implications like being able to get the id of the last inserted row in a table using @@IDENTITY or SCOPE_IDENTITY() etc.

Try: Understanding Identity Columns

NTulip
Yes. This does. Thanks a lot!!!!
Niyaz
i updated comment with some more information. don't forget to vote up the answer. Thanks
NTulip
Don't use @@IDENTITY. It's unreliable, if there is a trigger on the table which puts data into another table which has an identity column on it @@IDENTITY will return the wrong value.
mrdenny
A: 

It's equivalent to MySQL's AUTO_INCREMENT property. Usually used on a primary key column

Adam Pope