Stored procedure parameter default value

两盒软妹~` 提交于 2019-12-21 18:28:13

问题


I'm trying to create a stored procedure with default parameters, in my query I would do it like this:

DECLARE @mydate DATETIME
DECLARE @MT DATETIME
DECLARE @MY DATETIME
SELECT @mydate = GETDATE()
SELECT @MT = DATEPART(MONTH,@mydate)
SELECT @MY =  DATEPART(YEAR,@mydate)

SELECT * FROM ....

In my stored proc I've tried it as follows but when I execute the stored proc it prompts me for parameter values:

USE ..
GO
..
ALTER PROCEDURE ...
(@mydate DATETIME
,@MT DATETIME
,@MY DATETIME)

AS
BEGIN ...
SELECT @mydate = GETDATE()
SELECT @MT = DATEPART(MONTH,@mydate)
SELECT @MY =  DATEPART(YEAR,@mydate)
---
SELECT * FROM ....

How do I set the parameter values in the stored proc like I would in the query?


回答1:


Try this..

I put only one parameter because the others depend on it.

First approach

USE ..
GO
..
ALTER PROCEDURE yourSP
(@mydateParam DATETIME)

AS
BEGIN ...
SELECT @mydate = @mydateParam
SELECT @MT = DATEPART(MONTH,@mydate)
SELECT @MY =  DATEPART(YEAR,@mydate)
  ---
SELECT * FROM ....

To call the SP:

DECLARE @mydateParam DATETIME
SELECT @mydateParam = GETDATE()
execute yourSP @mydateParam

Second approach

ALTER Procedure yourSP
@mydateParam datetime = null
AS
BEGIN ...
IF @mydateParam is null
SET @mydateParam = getdate()
SELECT @mydate = @mydateParam
SELECT @MT = DATEPART(MONTH,@mydate)
SELECT @MY =  DATEPART(YEAR,@mydate)

   ---
SELECT * FROM ....

To call the SP:

DECLARE @mydateParam DATETIME
SELECT @mydateParam = GETDATE()
execute yourSP @mydateParam

or

execute yourSP


来源:https://stackoverflow.com/questions/11885960/stored-procedure-parameter-default-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!