1

我在 SQL Server 中有一个视图,并希望通过我的 C# 应用程序将此视图与其他表连接起来。为此,我需要在基础表中找出各个视图的字段对应的列。例如,我可以有这样的视图:

CREATE VIEW [View A]     
AS   
   SELECT Children.Child_ID, Social_Workers.Social_ID 
   FROM Children 
   INNER JOIN Social_Workers 
     ON Children.Social_ID = Social_Workers.Social_ID

我可能想在上面的视图中加入一个表。为此,我的 C# 应用程序必须以某种方式知道关系中所需的外键和主键字段,从而生成如下 SQL 代码:

SELECT [View A].Child_ID, 
       Sponsors.User_ID 
FROM  [View A]  
INNER JOIN Sponsors 
 ON [View A].Child_ID = Sponsors.Child_ID

找到了一种在视图中检索基础表的方法,但是我不确定如何解决其余问题。

4

2 回答 2

0

如果我正确理解您的要求,您可以尝试使用Find the real column name of an alias used in a view? 中的查询?

于 2013-03-07T12:58:09.563 回答
0

我认为以下内容可能会有所帮助,特别是 referenced_entity_name 和 referenced_minor_name 列。

select * from sys.dm_sql_referenced_entities( 'dbo.ViewA', 'object' ) ;

此 DMV 是在 SQL Server 2008 中添加的,所以如果您有早期版本,我很抱歉没有帮助。

于 2013-03-11T02:38:17.300 回答