如何在存储过程中声明具有默认值(上一个日期)的参数?
How to declare a paramater with default value (previous date) in a Stored Procedure?
我想在存储过程中设置默认参数如下:
ALTER PROCEDURE [rpt].[STAT05] --@StartDate = '2017-08-15', @EndDate = '2017-08-16'
@StartDate DATETIME2 = DATEADD(DAY, -2, GETDATE())
,@EndDate DATETIME2 = DATEADD(DAY, -1, GETDATE())
AS
BEGIN
,然而 returns:
Must declare the scalar variable "@StartDate".
这个说法有什么问题?
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())
我想在存储过程中设置默认参数如下:
ALTER PROCEDURE [rpt].[STAT05] --@StartDate = '2017-08-15', @EndDate = '2017-08-16'
@StartDate DATETIME2 = DATEADD(DAY, -2, GETDATE())
,@EndDate DATETIME2 = DATEADD(DAY, -1, GETDATE())
AS
BEGIN
,然而 returns:
Must declare the scalar variable "@StartDate".
这个说法有什么问题?
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())