2017-09-08 11 views
1

私は次のようにストアドプロシージャでデフォルトの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 –

答えて

3

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()) 
関連する問題