涉及具有相同名称的列的问题

时间:2013-03-05 22:28:20

标签: c# .net sql sql-server database

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

  

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

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

2 个答案:

答案 0 :(得分:2)

为什么不使用专栏Aliases

SELECT T1.Child_ID AS T1ChildID, T2.Child_ID AS T2ChildID,...

答案 1 :(得分:2)

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

如果Child_ID不同的值,那么首先我要问他们是否应该调用相同的东西,但假设有这个原因,请使用别名。

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

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

  1. 以某种预先确定的方式自动分配别名(如上所示,这不难做到);
  2. 强制用户为一列或两列选择别名;或者,
  3. 强制用户选择一个或另一个从输出列表中删除。
相关问题