Identity columns commonly
used as primary keys in tables.
These columns are automatically values are assigned when ever new record
inserted into a table.
IF OBJECT_ID('Employee','U') IS NOT NULL
DROP TABLE Employee
Ceating the Emlployee table
CREATE TABLE Employee
(
ID INT IDENTITY(1,1) PRIMARY KEY ,
NAME VARCHAR(20),
SALARY INT
)
INSERT INTO Employee
SELECT 'Rakesh',5000
UNION ALL
SELECT 'Ramu',6000
UNION ALL
SELECT 'Naresh',7000
SELECT * FROM Employee
In below scenario trying
to insert value into identity column.
INSERT INTO Employee (ID,NAME,SALARY) VALUES(4,'Sravan',10000)
When
ever tring to insert value into idenity
column of ID we get follwing follwing error.
Msg 544, Level
16, State 1, Line 1
Cannot insert
explicit value for identity column in table 'Employee' when IDENTITY_INSERT is
set to OFF.
By enabling IDENTITY_INSERT
on a table insert value into identity column.
SET IDENTITY_INSERT Employee ON
INSERT INTO Employee (ID,NAME,SALARY) VALUES(4,'Sravan',10000)
SET IDENTITY_INSERT Employee OFF
(1 row(s) affected)
SELECT * FROM Employee
Key points about IDENTITY_INSERT:
·
It can only
be enabled on one table at a time.
·
When it is
enabled on a table you must specify a value for the identity column.
·
The user
issuing the statement must own the object, be a system administrator (sysadmin
role), be the database owner (duo) or be a member of the db_ddladmin role in
order to run the command
Comments
Post a Comment