我有一个用户定义的函数,在许多存储过程中使用,这将给我一些价值.如果我可以添加一个新的可选参数到同一个.
如果我没有传递任何值,它应该是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