inserted ids in insert statement in sql code example

Example 1: sql insert inserted id

-- Never use @@identity or scope_identity()
-- they can not always be relied upon

DECLARE @Ids_tbl TABLE ([id] INT); -- Requires table. use variable for scope
INSERT INTO [sometable] ([ColA],[ColB])
OUTPUT INSERTED.ID INTO @Ids_tbl(id)
VALUES ('valA','valB');

SELECT [id] FROM @Ids_tbl; -- <-- Id(s) in here

Example 2: how to get inserted id in sql

/*  inserted id in SQL Server */
-- SCOPE_IDENTITY() last identity generated for ANY TABLE in the CURRENT SESSION and the CURRENT SCOPE
    INSERT INTO TableA (...) VALUES (...)
    SET @LASTID = SCOPE_IDENTITY()
-- @@IDENTITY last identity generated for ANY TABLE in the CURRENT SESSION
    INSERT INTO TableA (...) VALUES (...)
    SET @LASTID = @@IDENTITY
-- IDENT_CURRENT('TableA') last identity for a SPECIFIC TABLE in ANY SESSION and ANY SCOPE
    SET @LASTID = IDENT_CURRENT('TableA')
-- OUTPUT clause of the INSERT statement EVERY ROW inserted via that STATEMENT
    DECLARE @NewIds TABLE(ID INT, ...)
    INSERT INTO TableA (...)
    OUTPUT Inserted.ID, ... INTO @NewIds
    SELECT ...

Tags:

Sql Example