在 T-SQL 中使用 GetDate() 作为 SP 的默认参数不起作用
Use GetDate() as default parameter for SP in T-SQL not working
我正在尝试在 TSQL 中创建一个 SP,它将月份作为参数(数字格式)。我希望如果参数被用户抑制,那么 SP 将使用当前月份。
我试过了,但它说我使用的语法不正确:
CREATE PROCEDURE myproc
@month int = select Month(GetDate())
我做错了什么?
谢谢!
您不能将 func 调用作为默认参数值传递:
CREATE PROCEDURE myproc
@month int = select Month(GetDate())
应该是:
CREATE PROCEDURE myproc
@month int = NULL
AS
BEGIN
SET @month = COALESCE(@month, Month(GetDate()));
SELECT @month;
END;
如果用户没有为 @month
提供值,则默认为 NULL
,COALESCE
将设置适当的值。
我正在尝试在 TSQL 中创建一个 SP,它将月份作为参数(数字格式)。我希望如果参数被用户抑制,那么 SP 将使用当前月份。
我试过了,但它说我使用的语法不正确:
CREATE PROCEDURE myproc
@month int = select Month(GetDate())
我做错了什么?
谢谢!
您不能将 func 调用作为默认参数值传递:
CREATE PROCEDURE myproc
@month int = select Month(GetDate())
应该是:
CREATE PROCEDURE myproc
@month int = NULL
AS
BEGIN
SET @month = COALESCE(@month, Month(GetDate()));
SELECT @month;
END;
如果用户没有为 @month
提供值,则默认为 NULL
,COALESCE
将设置适当的值。