在一个SQL Server视图中显示多个表

时间:2013-03-18 21:44:37

标签: sql-server tsql sql-server-2005

我有十个表值函数,它们返回具有相同布局的表。我想在SQL Server 2005的视图中显示所有十个函数的输出。

当我在视图设计中尝试这样的时候......

select col1, col2... coln from dbo.tableFunc1
Union
select col1, col2... coln from dbo.tableFunc2

我收到消息:

  

包含Unions的视图无法在Grid和Diagram窗格中以图形方式表示。

有没有办法在视图中聚合所有这些函数,还是我必须编写一个附加函数来聚合函数,然后只查看聚合函数的输出?

2 个答案:

答案 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年的限制。