在 SQL Server 的视图中使用表值函数
Posted
技术标签:
【中文标题】在 SQL Server 的视图中使用表值函数【英文标题】:Using a table-value function inside a view in SQL Server 【发布时间】:2010-05-20 19:45:08 【问题描述】:如果我尝试以下查询,我有一个可以正常工作的表值函数:
SELECT *
FROM dbo.GetScheduleForEmployee() AS schedule
但是,如果我尝试使用该查询创建视图,则会收到“参数太少”错误。
表值函数和视图有限制吗?
【问题讨论】:
向我们展示您的功能以及您如何定义视图! 问题只发生在查询设计器内部。 【参考方案1】:这对我有用:
CREATE FUNCTION dbo.GetScheduleForEmployee()
RETURNS TABLE
AS
RETURN
(
SELECT 1 AS id
UNION ALL
SELECT 2
)
GO
CREATE VIEW myview
AS
SELECT *
FROM GetScheduleForEmployee() AS schedule
GO
SELECT *
FROM myview
【讨论】:
我刚刚意识到只有在使用查询设计器创建视图时才会出现问题 如果您使用 mysql,您应该注意查询设计器只会执行您放入其中的任何内容的第一行/语句。 感谢 rlb.usa 我正在使用 SQL Server(在标题和问题标签中指定),以上是关于在 SQL Server 的视图中使用表值函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 的表值函数中使用 CTE 语句
如何在 SQL Server where 子句中使用表值函数