如何在存储过程中声明一个默认值(上一个日期)的参数?

如何在存储过程中声明一个默认值(上一个日期)的参数?

问题描述:

我想设置默认PARAMS在存储过程如下:如何在存储过程中声明一个默认值(上一个日期)的参数?

ALTER PROCEDURE [rpt].[STAT05] [email protected] = '2017-08-15', @EndDate = '2017-08-16' 

    @StartDate  DATETIME2 = DATEADD(DAY, -2, GETDATE()) 
    ,@EndDate  DATETIME2 = DATEADD(DAY, -1, GETDATE()) 

AS 
BEGIN 

,然而其返回:

必须声明标量变量 “@StartDate”。

这句话有什么问题?

+0

https://stackoverflow.com/questions/6129508/how-do-you-initialize-a-variable-in-a-stored-procedure-with-a-function –

sp中参数的缺省值必须是常量。

ALTER PROCEDURE [rpt].[STAT05] 
    @StartDate  DATETIME2 = null 
    ,@EndDate  DATETIME2 =null 
AS 
BEGIN 

IF @StartDate is null 
SET @StartDate = DATEADD(DAY, -2, GETDATE()) 

IF @EndDate is null 
SET @EndDate = DATEADD(DAY, -1, GETDATE())