我有一个用户定义的函数,该函数用在许多存储过程中,这些函数将为我返回一些值。如果可以的话,可以在其中添加一个新的可选参数。
如果我不传递任何值,则应为null;如果传递一些值,则应采用它。我不想去改变所有的存储过程。
范例程式码
dbo.CalculateAverageForUser(userid int)
我可以使用
dbo.CalculateAverageForUser(userid int, type NVARCHAR(10) = NULL)
吗
最佳答案
如果您不想调整所有引用该函数的现有存储过程,那么我认为您需要使用现有代码中的代码创建一个新函数
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
关于sql - SQL Server中的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3278860/