利用SQLServer2000企业管理器中的工具、向导,创建视图时,
自动生成代码:
USE [News]
GO
CREATE VIEW [NewsVIEW]
AS SELECT [dbo].[OneClass].[oid], [dbo].[OneClass].[OneClassName], [dbo].[TwoClass].[tid], [dbo].[TwoClass].[TwoClassName], [dbo].[TwoClass].[oid], [dbo].[MyTable].[mid], [dbo].[MyTable].[tid], [dbo].[MyTable].[myTitle]
FROM [dbo].[OneClass], [dbo].[TwoClass], [dbo].[MyTable]
where OneClass.oid=TwoClass.oid and TwoClass.tid=MyTable.tid
但是,当点击最后一步完成时,提示
错误4506:各视图或函数中的列名必须唯一。多次指定了列名'oid'(属于视图或函数'MyView')。请问是什么问题?
请问在企业管理器向导中应该如何修改才能成功创建视图MyView?
如何直接写代码,应怎么写?

解决方案 »

  1.   

    CREATE VIEW [NewsVIEW]
    AS SELECT [dbo].[OneClass].[oid] as OneClassoid, [dbo].[OneClass].[OneClassName], [dbo].[TwoClass].[tid], [dbo].[TwoClass].[TwoClassName], [dbo].[TwoClass].[oid], [dbo].[MyTable].[mid], [dbo].[MyTable].[tid], [dbo].[MyTable].[myTitle]
    FROM [dbo].[OneClass], [dbo].[TwoClass], [dbo].[MyTable]
    where OneClass.oid=TwoClass.oid and TwoClass.tid=MyTable.tid列中有两个oid  给其中一个指定一个别名就行了CREATE VIEW [NewsVIEW]
    AS SELECT [dbo].[OneClass].[oid], [dbo].[OneClass].[OneClassName], [dbo].[TwoClass].[tid], [dbo].[TwoClass].[TwoClassName], [dbo].[TwoClass].[oid], [dbo].[MyTable].[mid], [dbo].[MyTable].[tid], [dbo].[MyTable].[myTitle]
    FROM [dbo].[OneClass], [dbo].[TwoClass], [dbo].[MyTable]
    where OneClass.oid=TwoClass.oid and TwoClass.tid=MyTable.tid