【发布时间】:2013-03-07 12:26:57
【问题描述】:
我在 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 来检索视图中的基础表,但是我不确定如何解决剩下的问题。
【问题讨论】:
-
您能描述一下您要运行的查询吗?视图中的字段名称看起来很清晰。
-
@GordonLinoff - 我的 C# 应用程序如何知道视图中的哪些列是关系的对应列?视图可以具有与其在实际表中的实际 FK 和 PK 对应项不同的列名。
-
在您给出的视图示例中,视图中的列名与基础表中的相同。另外,我不明白你想做什么。如果您需要有关孩子的信息,请使用
child_id。如果您需要有关社工的信息,请使用social_id。 -
您想根据现有的 FK 动态创建与 View 的联接,但 View 中的列名可能与 FK 中的列名不同?
-
准确地说是@DanilaPolevshikov。
标签: c# .net sql sql-server database