SQL UDF中的“参数太多”,但仍能正常运行

时间:2014-08-28 13:29:19

标签: sql-server user-defined-functions

我在SQL Server Management Studio 2008中创建了一个简单的用户定义函数作为测试。它根据出生日期和第二个日期来计算一个人的年龄,在这个日期我们想要这个人&#39 ;智者。该函数显示:

CREATE FUNCTION [*myprofile*].[udf_getAge]
    (@DOB AS DATE, @AgeAt DATE)
RETURNS INTEGER
AS
BEGIN
    RETURN (DATEDIFF(YYYY,@DOB,@AgeAt))
END

该函数在调用时带有错误(带红色下划线),并显示"过程或功能' myprofile .udf_getAge'指定了太多参数"。但是,当调用该函数时,它可以正常运行。我在查询中使用该函数的示例如下:

SELECT
Forename + ' ' + Surname AS Name,
[*myprofile*].udf_getAge(DOB, GETDATE()) As Age

FROM
*myTable*

这个明显的错误对任何人都有意义吗?正如我所说,它运作良好,但它并不适合我,因为它被认为有太多的论据'。

2 个答案:

答案 0 :(得分:1)

SQL Server Management Studio(SSMS)缓存UDF签名以应用语法突出显示,如果在同一会话中更改了函数签名,则可能会获得该行为。请尝试重新启动SSMS,“错误”应该消失。

答案 1 :(得分:1)

尝试在SSMS中按 Ctrl + Shift + R 进行刷新。