创建视图错误列名称必须是唯一的
Creating view error column names must be unique
您好,我正在尝试解决创建视图时出现的错误。我的看法如下:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT *
FROM [dbo].[Employee] as emp
inner join [dbo].[Managar] as mgr on emp.NewEmp=mgr.EmpID
GO
创建此视图时出现以下错误:
Column names in each view or function must be unique. Column name
'EmpID' in view or function 'vw_Employee_Data' is
specified more than once.
所以我读了 here about a simple solution to specify all the column names to be selected. I checked Whosebug 问题,它有点相似。
如果我在 "SELECT" 中指定每一列,它工作正常,但问题是我的 table 员工 table 有超过 25 列,而经理 table 有大约10 列,这会使我的查询变得很长并且不确定是否会出现任何性能问题。
但是当我尝试如下缩短查询时,出现相同的重复列错误:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT emp.*, [mgr].[EmpID] AS [MGREmpID], [mgr].[BaseLID] AS [MGRBaseLID], mgr.*
FROM [dbo].[Employee] as emp
inner join [dbo].[Managar] as mgr on emp.NewEmp=mgr.EmpID
所以我想知道是否有其他方法可以解决它。我是 SQL 的新手,所以不确定我是否正确使用了 tbl.* 格式。
有意见吗?
不要使用 *
。列出 所有 列:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT e.*, m.EmpID AS MGREmpID, m.BaseLID AS MGRBaseLID
FROM [dbo].Employee e INNER JOIN
[dbo].Manager m
ON e.NewEmp = m.EmpID;
如果您有更多来自 mgr
的列,请列出它们并确保它们与 emp
列不冲突。
您好,我正在尝试解决创建视图时出现的错误。我的看法如下:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT *
FROM [dbo].[Employee] as emp
inner join [dbo].[Managar] as mgr on emp.NewEmp=mgr.EmpID
GO
创建此视图时出现以下错误:
Column names in each view or function must be unique. Column name 'EmpID' in view or function 'vw_Employee_Data' is specified more than once.
所以我读了 here about a simple solution to specify all the column names to be selected. I checked
如果我在 "SELECT" 中指定每一列,它工作正常,但问题是我的 table 员工 table 有超过 25 列,而经理 table 有大约10 列,这会使我的查询变得很长并且不确定是否会出现任何性能问题。
但是当我尝试如下缩短查询时,出现相同的重复列错误:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT emp.*, [mgr].[EmpID] AS [MGREmpID], [mgr].[BaseLID] AS [MGRBaseLID], mgr.*
FROM [dbo].[Employee] as emp
inner join [dbo].[Managar] as mgr on emp.NewEmp=mgr.EmpID
所以我想知道是否有其他方法可以解决它。我是 SQL 的新手,所以不确定我是否正确使用了 tbl.* 格式。
有意见吗?
不要使用 *
。列出 所有 列:
CREATE VIEW [dbo].[vw_Employee_Data] AS
SELECT e.*, m.EmpID AS MGREmpID, m.BaseLID AS MGRBaseLID
FROM [dbo].Employee e INNER JOIN
[dbo].Manager m
ON e.NewEmp = m.EmpID;
如果您有更多来自 mgr
的列,请列出它们并确保它们与 emp
列不冲突。