我有一个用户定义的函数,该函数已在许多存储过程中使用,这些函数将为我返回一些值。如果可以的话,可以在其中添加一个新的可选参数。
如果我不传递任何值,则应为null;如果传递一些值,则应采用它。我不想去改变所有的存储过程。
范例程式码
dbo.CalculateAverageForUser(userid int)
我可以用吗 dbo.CalculateAverageForUser(userid int, type NVARCHAR(10) = NULL)
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