我有一个存储过程需要在返回表的函数上进行内连接。试着像这样打电话:
INNER JOIN [dbo].[udf_GetBillingInfo(@QuoteID)] billInfo ON quotes.QuoteID = billInfo.QuoteID
发出错误invalid object name dbo.udf_GetBillingInfo(@QuoteID)
根据我的要求,我认为我不能将函数放入视图中,因为它有一点点逻辑。我如何加入结果?我是否必须将函数结果赋给变量或那种性质的东西?
答案 0 :(得分:5)
您的问题是方括号 - [dbo].[udf_GetBillingInfo(@QuoteID)]
- 它们引用内部的任何内容作为函数名称。
将其更改为:
[dbo].udf_GetBillingInfo(@QuoteID)
答案 1 :(得分:0)
这是加入TVF的一个(愚蠢的)例子,希望它有所帮助!
CREATE FUNCTION MyFunc ( @p1 int ) RETURNS TABLE
AS
RETURN
(
SELECT @p1 AS a
union
SELECT @p1 +1 AS a
union
SELECT @p1 +2 AS a
)
GO
declare @t table (c int)
insert @t (c) values(1),(2),(3),(4)
select *
from @t t
left join dbo.MyFunc(1) f on t.c = f.a
答案 2 :(得分:-1)
你能把你的功能写成表函数吗?我想你可以在这里找到答案