вернуть значение с stored procedure

я хочу ,чтоб моя процедура возвращала Id после insert-а, а это id AUTO INCREMENT Field, как это сделать?

@GroupId BIGINT,
@EventId BIGINT, 
@EventMarketId BIGINT 
AS
BEGIN
    INSERT INTO Market(GroupId, EventId, EventmarketId)
        OUTPUT INSERTED.Id
        VALUES  (@GroupId, @EventId, @EventMarketId)
END

Ответы (2 шт):

Автор решения: Nick Proskuryakov

Триггер не лучшая реализация этой задачи, вам подойдет один из вариантов ниже:

  1. SCOPE_IDENTITY().

    SELECT SCOPE_IDENTITY()

  2. IDENT_CURRENT

    SELECT IDENT_CURRENT(‘tablename’)

    Добавьте одну из этих строк во внутрь вашего BEGIN ... END

→ Ссылка
Автор решения: Mikhail

А если так:

CREATE OR ALTER PROCEDURE MyProcedure
  @GroupId BIGINT,
  @EventId BIGINT, 
  @EventMarketId BIGINT ,
  @id INT OUTPUT
AS
BEGIN
  SET NOCOUNT ON;
  INSERT INTO Market (GroupId, EventId, EventmarketId)
     VALUES (@GroupId, @EventId, @EventMarketId)
     set @id = SCOPE_IDENTITY()
END
GO
  declare @myID int
  EXEC MyProcedure 10,10,10, @id = @myID OUTPUT
  select @myID
→ Ссылка