更新时间:2022-06-15 08:55:18
您的代码按预期运行.该过程递归地调用自己.
Your code is behaving as expected. The procedure is calling itself recursively.
如果你不想要那样,试试这个:
If you do not want that, try this:
ALTER PROCEDURE dbo.Test
@Value int = null
AS
BEGIN
IF (IsNull(@Value, '') = '')
SELECT 'I am NULL!'
ELSE
SELECT 'I am ' + CONVERT(varchar(20), @Value)
END
GO
EXEC dbo.Test
如果你确实想使用递归,你必须定义一个基本案例(又名退出条件"),这将使存储过程退出递归堆栈.
If you do want to use recursion, you have to define a base case (AKA "exit condition") which will make stored procedure exit the recursion stack.