gpt4 book ai didi

sql-server-2008-r2 - SQL Server 尝试访问使用 dbo "Invalid object name ' dbo.Function_Client 创建的 udf 函数时。”

转载 作者:行者123 更新时间:2023-12-02 07:42:45 25 4
gpt4 key购买 nike

您好,我在 sqlserver 2008 中创建了一个 udf 函数...当我尝试访问它时出现错误“无效的对象名称 'dbo.Function_Client”我想从表中返回记录数并将其分配给变量以返回...所以它是一个标量函数...在里面我已经实现了 if else 逻辑..

下面是我的udf

CREATE FUNCTION [dbo].[Function_Clients] (@ClientAlias varchar(10) ,
@TimePeriod int, @TypeOfTimePeriod varchar(1))

RETURNS INT
AS
BEGIN
DECLARE @COUNT INT;

IF(@ClientAlias='AEP' AND @TypeOfTimePeriod ='M')
Set @COUNT = (SELECT DISTINCT COUNT(*) AS 'NO_AEP' from dbo.Engagement INNER JOIN
dbo.Client ON dbo.Engagement.ClientIdentifier = dbo.Client.ClientIdentifier
WHERE (dbo.ClientInvolvementRole.ClientInvolvementID = '1356790AERTY')
AND (CONVERT(datetime, dbo.Engagement.EndDate, 103)
<= CONVERT(datetime, DATEADD(MONTH, @TimePeriod , GETDATE()), 103))


ELSE

---SAME ABOVE CODE BUT REPLACING MONTH WITH DAY AS
---"DATEADD(DAY,@TimePeriod , GETDATE()), 103)" IN WHERE CONDITION .

...if else (for various client alias)

RETURN @COUNT;
END
GO

对于每个@clientalias,我想根据我在@TypeOfTimePeriod 中的输入添加月份部分和部分。例如 @TypeOfTimePeriod ='M' 表示月份或 'D' 表示要添加到 dateadd 部分的日期。

我这样调用过 select * from dbo.Clients('AEP',12,'M')

但是显示错误对象名称“dbo.Function_NoOfClients”无效。

我可以使用 dbo.view1 访问 View ...但不能使用此 udf...我的 udf 有任何问题..请帮助我...

最佳答案

使用

SELECT dbo.Clients('AEP',12,'M')

注意 Table valued and scalar functions 的用法差异

关于sql-server-2008-r2 - SQL Server 尝试访问使用 dbo "Invalid object name ' dbo.Function_Client 创建的 udf 函数时。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com