小编典典

SQL Server中的可选参数

sql

我有一个用户定义的函数,该函数已在许多存储过程中使用,这些函数将为我返回一些值。如果可以的话,可以在其中添加一个新的可选参数。

如果我不传递任何值,则应为null;如果传递一些值,则应采用它。我不想去改变所有的存储过程。

范例程式码

dbo.CalculateAverageForUser(userid int)

我可以用吗 dbo.CalculateAverageForUser(userid int, type NVARCHAR(10) = NULL)


阅读 204

收藏
2021-03-23

共1个答案

小编典典

如果您不想调整所有引用该函数的现有存储过程,那么我认为您需要使用现有代码中的代码创建一个新函数

CREATE FUNCTION CalculateAverageForUser2
(
    @userid int,
    @param2 nvarchar(10) = NULL
)
RETURNS float
AS
/*Code from existing function goes here*/

然后只需将现有功能更改为以下内容

ALTER FUNCTION CalculateAverageForUser 
(
 @userid int
)
RETURNS float
AS
BEGIN
RETURN dbo.CalculateAverageForUser2(@userid, DEFAULT)
END
2021-03-23