sql - SQL Server中的可选参数

标签 sql sql-server-2005

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

如果我不传递任何值,则应为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/

相关文章:

c# - 不返回值的sql中的存储过程

php - 如何在 PHP 中使用 SQLSTATE '45000' MESSAGE_TEXT?

php - 在 MySQL 和 PHP 上使用 Left Join 对其他表中的字段求和

sql-server-2005 - 创建日志系统的最佳解决方案

sql-server - 查找 SQL Server 2005 Management Studio 的注册表

mysql - SQL 复制和更新表

c++ - 在 C++ 中获取数据库连接

sql - 如何参数化删除表的 T-SQL 存储过程?

sql-server - 数据库查询和插入速度取决于什么?

sql-server-2008 - 支持 ASP.NET\C# 项目上的多个程序集