我在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*
这个明显的错误对任何人都有意义吗?正如我所说,它运作良好,但它并不适合我,因为它被认为有太多的论据'。
答案 0 :(得分:1)
SQL Server Management Studio(SSMS)缓存UDF签名以应用语法突出显示,如果在同一会话中更改了函数签名,则可能会获得该行为。请尝试重新启动SSMS,“错误”应该消失。
答案 1 :(得分:1)
尝试在SSMS中按 Ctrl + Shift + R 进行刷新。