SQL更改视图名称/连接

时间:2015-06-09 14:06:35

标签: sql sql-server tsql view

我正在尝试加入我创建的两个视图,但是我使用它们的公共字段(cAuditNumber)加入它们。

问题是,一旦我完成了连接,它就不会让我创建视图,因为它不能有两次字段名称cAuditNumber。

cAuditNumber是我应该使用的PK吗?

如何更正此问题并仍加入表格?

CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.*, StkSalesUpdated.*
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

我收到以下错误:

消息4506,级别16,状态1,过程KFF_Sales_Data_Updated,第2行 每个视图或函数中的列名必须是唯一的。视图或函数“KFF_Sales_Data_Updated”中的列名“cAuditNumber”被多次指定。

3 个答案:

答案 0 :(得分:1)

替换您自己的列名而不是ColumnA,B列等,但它应遵循以下格式:

CREATE VIEW KFF_Sales_Data_Updated AS
SELECT CustSalesUpdated.cAuditNumber
    ,CustSalesUpdated.ColumnA
    ,CustSalesUpdated.ColumnB
    ,CustSalesUpdated.ColumnC
    ,StkSalesUpdated.ColumnA as StkColumnA
    ,StkSalesUpdated.ColumnB as StkColumnB
    ,StkSalesUpdated.ColumnC as StkColumnC
FROM CustSalesUpdated
INNER JOIN StkSalesUpdated
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

您只需使用“as”为重复列添加别名,或者您可以使用它来重命名您想要的任何列。

答案 1 :(得分:0)

CREATE VIEW KFF_Sales_Data_Updated AS
SELECT csu.cAuditNumber cAuditNumber1 , ssu.cAuditNumber cAuditNumber2  
FROM CustSalesUpdated csu
INNER JOIN StkSalesUpdated ssu
ON StkSalesUpdated.cAuditNumber = CustSalesUpdated.cAuditNumber

您可以在两个表的select语句中添加任何其他列,但如果有两个具有相同名称的列,则应为它们指定别名

答案 2 :(得分:0)

一般来说,使用<remote name="my_remote" fetch="ssh://git@bitbucket.org/MY_USERNAME"/> 是一种不好的做法。另一方面,select *表名和列是一个好习惯。特别是在您的情况下,您的表名称以及相同的列名称(跨两个表)可以使用别名。关于哪个alias来自哪里,数据库感到困惑。因此,别名派上用场。

cAuditNumber