SQL Server Developer Center > SQL Server Forums > Transact-SQL > Insert Then Select Inserted
Ask a questionAsk a question
 

AnswerInsert Then Select Inserted

  • Wednesday, November 04, 2009 8:59 AMGEBALY Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    i have stored procedure
    a wnat to insert into table
    and after insert i want to select the inserted id because it is identity

Answers

  • Wednesday, November 04, 2009 9:09 AMArif Hasan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    you can also use scope identity

    check this

    declare @tbl table(id int identity(1, 1), val nvarchar(100))
    declare @id int
    
    insert into @tbl
    select 'abc'
    
    select @id = SCOPE_IDENTITY()
    select @id
    
    insert into @tbl
    select 'xyz'
    
    select @id = SCOPE_IDENTITY()
    select @id
    
    
    
    • Marked As Answer byGEBALY Wednesday, November 04, 2009 9:25 AM
    •  

All Replies

  • Wednesday, November 04, 2009 9:03 AMK H TanMVPUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Has Code
    do you need all of the inserted value or the value of the identity ?

    you can use the OUTPUT clause if you are using SQL 2005/2008

    example

    insert into yourtable ( < column list > )
    output inserted.*
    select  10, 20, 30
    
    



    KH Tan
  • Wednesday, November 04, 2009 9:07 AMrichbrownesqModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Has Code
    Or you can use SCOPE_IDENTITY to get the last value inserted to an identity column:

    DECLARE @Table TABLE (Id INT IDENTITY(1,1), Dt DATETIME)
    
    INSERT INTO @Table
    SELECT GETDATE()
    
    SELECT SCOPE_IDENTITY()
    

    every day is a school day
  • Wednesday, November 04, 2009 9:08 AMGEBALY Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    i want the identity only
  • Wednesday, November 04, 2009 9:09 AMArif Hasan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    you can also use scope identity

    check this

    declare @tbl table(id int identity(1, 1), val nvarchar(100))
    declare @id int
    
    insert into @tbl
    select 'abc'
    
    select @id = SCOPE_IDENTITY()
    select @id
    
    insert into @tbl
    select 'xyz'
    
    select @id = SCOPE_IDENTITY()
    select @id
    
    
    
    • Marked As Answer byGEBALY Wednesday, November 04, 2009 9:25 AM
    •