0

我正在尝试在 C# 中创建一个涉及两个单独表的视图,其中一个字段在两个表中具有相同的名称。无法更改列名,也不能仅为视图创建新的列名。这是因为不能以任何方式修改数据。我收到以下错误:

每个视图或函数中的列名必须是唯一的。
视图或函数“Testing”中的列名“Child_ID”被指定了多次。

在线搜索显示这是因为所有列都必须是唯一的。但是,当我尝试在每个违规列之前添加相应的表名时,仍然返回错误。有没有办法解决这个问题?我根本无法更改列名。

4

2 回答 2

2

为什么不使用列别名

SELECT T1.Child_ID AS T1ChildID, T2.Child_ID AS T2ChildID,...
于 2013-03-05T22:32:19.747 回答
2

好吧,如果Child_ID两个表中的值相同(我假设这是来自连接),那么您只需将其中一个排除在外。两者都返回有什么意义?

如果Child_ID不同的值,那么首先我质疑它们是否应该被称为相同的东西,但假设有这个原因,请使用别名。

SELECT 
  Child_ID_FromTable1 = Table1.Child_ID, 
  Child_ID_FromTable2 = Table2.Child_ID
...

您的查询构建器需要识别多个表具有相同列名的情况,并且:

  1. 以某种预先确定的方式自动分配别名(如上所示,这并不难);
  2. 强制用户为一列或两列选择别名;或者,
  3. 强制用户选择一个或另一个从输出列表中删除。
于 2013-03-05T22:33:01.747 回答