请帮助我在下面的代码中查找错误。
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
我在这里做什么错了?
谢谢。
答案 0 :(得分:4)
SCOPE_IDENTITY
返回插入到同一作用域的标识列中的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内。
如果在您的范围内没有任何插入SCOPE_IDENTITY();为空