Рассмотрим следующий фрагмент кода T-SQL:
CREATE PROC dbo.SquareNum(@i INT OUTPUT)
AS
BEGIN
SET @i = @i * @i
--SELECT @i
END
GO
DECLARE @a INT = 3, @b INT = 5
EXEC dbo.SquareNum @a OUTPUT
EXEC dbo.SquareNum @b
SELECT @a AS ASQUARE, @b AS BSQUARE
GO
DROP PROC dbo.SquareNum
Набор результатов:
ASQUARE BSQUARE
----------- -----------
9 5
Как видно, @b
не возведено в квадрат, т.к. оно не передавалось в качестве выходного параметра (при передаче в параметре нет квалификатора OUTPUT
).
Я хотел бы знать, есть ли способ проверить в теле хранимой процедуры (в данном случае тело dbo.SquareNum), чтобы увидеть, действительно ли параметр был передан как параметр OUTPUT
?