小编典典

T-SQL - 具有默认参数的函数

all

我有这个脚本:

CREATE FUNCTION dbo.CheckIfSFExists(@param1 INT, @param2 BIT = 1 )
RETURNS BIT
AS
BEGIN
    IF EXISTS ( bla bla bla )
        RETURN 1;
    RETURN 0;
END
GO

我想以这种方式在程序中使用它:

IF dbo.CheckIfSFExists( 23 ) = 0
    SET @retValue = 'bla bla bla';

但我得到了错误:

为过程或函数 dbo.CheckIfSFExists 提供的参数数量不足。

为什么它不起作用?


阅读 128

收藏
2022-08-17

共1个答案

小编典典

你必须这样称呼它

SELECT dbo.CheckIfSFExists(23, default)

来自技术网

当函数的参数有默认值时,调用函数时必须指定关键字DEFAULT,以便检索默认值。此行为与在存储过程中使用具有默认值的参数不同,其中省略参数也意味着默认值。此行为的一个例外是使用
EXECUTE 语句调用标量函数时。使用 EXECUTE 时,不需要 DEFAULT 关键字。

2022-08-17