我有十个表值函数,它们返回具有相同布局的表。我想在SQL Server 2005的视图中显示所有十个函数的输出。
当我在视图设计中尝试这样的时候......
select col1, col2... coln from dbo.tableFunc1
Union
select col1, col2... coln from dbo.tableFunc2
我收到消息:
包含Unions的视图无法在Grid和Diagram窗格中以图形方式表示。
有没有办法在视图中聚合所有这些函数,还是我必须编写一个附加函数来聚合函数,然后只查看聚合函数的输出?
答案 0 :(得分:4)
没有必要做任何事情!
重新阅读警告消息,它只是告诉您该视图无法以图形方式表示。这并不意味着您的视图无效,您只需忽略该消息并继续工作即可。您的视图仍将被创建,并且仍然可以像任何其他视图一样使用。
答案 1 :(得分:1)
为什么要将视图用于多个功能?为什么不只是让表中的视图执行函数的逻辑? EG:而不是
select col1, col2
from dbo.tablefunc1
union
select col1, col2
from dbo.tablefunc2
DO
Select col1, col2
from tableforfunc1 1
join tableforfunc2 2 on 1.id = 2.id
union
Select col1, col2
from tablefunc2
如果由于创建表函数的逻辑而太难,为什么不重新制作一个更大的表函数或proc然后使用所有对象的组合?
我在SQL Server 2012中尝试了一些基本的测试表函数并且它们有效,所以我想知道这是否是2005年的限制。