вернуть значение с 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
→ Ссылка
Триггер не лучшая реализация этой задачи, вам подойдет один из вариантов ниже:
-
SELECT SCOPE_IDENTITY()
-
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