Хранимая процедура возвращает значение NULL для параметра OUTPUT в SQL Server 2017 - PullRequest
0 голосов
/ 26 октября 2019

Не могли бы вы, ребята, помочь мне найти ошибку в приведенном ниже коде.

CREATE PROCEDURE dbo.SelectCustomer2
    (@customerId INT OUTPUT)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT @customerId = SCOPE_IDENTITY();

    SELECT * 
    FROM Sales.Customer
    WHERE CustomerID = @customerId;
END

--Executing SelectCustomer
DECLARE @lastRowId int

EXEC dbo.SelectCustomer2 @customerId = @lastRowId OUTPUT;

SELECT @lastRowId AS RowId

Что я здесь не так делаю?

Заранее спасибо.

1 Ответ

4 голосов
/ 26 октября 2019

SCOPE_IDENTITY

Возвращает последнее значение идентификатора, вставленное в столбец идентификатора в той же области. Область действия - это модуль: хранимая процедура, триггер, функция или пакет. Поэтому, если два оператора находятся в одной и той же хранимой процедуре, функции или пакете, они находятся в одной и той же области.

, если в вашей области нет вставки SCOPE_IDENTITY ();Нуль

SCOPE_IDENTITY

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...