我在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
我有found a way来检索视图中的基础表,但我不确定如何解决其余问题。
答案 0 :(得分:0)
如果我理解您的要求,您可以尝试使用Find the real column name of an alias used in a view?
中的查询答案 1 :(得分:0)
我认为以下内容可能有所帮助,特别是referenced_entity_name和referenced_minor_name列。
select * from sys.dm_sql_referenced_entities( 'dbo.ViewA', 'object' ) ;
这个DMV是在SQL Server 2008中添加的,所以如果你有早期版本,没有帮助我很抱歉。