SQL Server - IDENTITY



Creating an IDENTITY Column

USE Tempdb
GO

CREATE TABLE Employees (
    EmpID INT IDENTITY,
    EmpName VARCHAR(20) )
GO

INSERT INTO Employees (EmpName) SELECT 'Jacob'
INSERT INTO Employees (EmpName) SELECT 'Steve'

SELECT * FROM Employees

/*
EmpID       EmpName
----------- --------------------
1           Jacob
2           Steve
*/

An example that uses @@IDENTITY system variable

DECLARE @NewVal INT
INSERT INTO Sales (col1, col2) SELECT 'val1', 'val2'
SELECT @NewVal = @@IDENTITY
-- do something with @NewVal

An example that uses SCOPE_IDENTITY() function

DECLARE @NewVal INT
INSERT INTO yourtable (col1, col2) SELECT 'val1', 'val2'
SELECT @NewVal = SCOPE_IDENTITY()
-- do something with @NewVal

Inserting an explicit value into an IDENTITY column?

CREATE TABLE Employees (EmpID INT IDENTITY, Name VARCHAR(20))
GO

SET IDENTITY_INSERT Employees ON
INSERT INTO Employees (EmpID, Name) SELECT 100, 'Jacob'
SET IDENTITY_INSERT Employees OFF

SELECT * FROM Employees 
/*
EmpID       Name
----------- --------------------
100         Jacob
*/

How to find the current IDENTITY value of a table

IF OBJECT_ID('Employees','U') IS NOT NULL
    DROP TABLE Employees
    
CREATE TABLE Employees (EmpID INT IDENTITY, Name VARCHAR(20))
GO

SELECT IDENT_CURRENT('Employees') AS LastIdentityValue
-- returns 1

INSERT INTO Employees(Name) SELECT 'Jacob'
SELECT IDENT_CURRENT('Employees') AS LastIdentityValue
-- returns 1

INSERT INTO Employees(Name) SELECT 'Steve'
SELECT IDENT_CURRENT('Employees') AS LastIdentityValue
-- returns 2

Identifying all the stored procedures that uses @@identity

SELECT DISTINCT 
	o.name 
FROM sysobjects o 
INNER JOIN syscomments c ON (c.id = o.id) 
WHERE xtype = 'P' 
	and category = 0 
	and c.text LIKE '%@@identity%'
ORDER BY o.name 

Share |

 Cant find the page you are looking for?
 Help us to improve by adding the content that you are looking for.
 Leave a feedback
 We look forward to hear your comments and feedback.