Sql Sybase ASE数据库中的Alter视图
我使用Sybase ASE数据库,并使用下面的sql在数据库中创建视图:Sql Sybase ASE数据库中的Alter视图,sql,database,sap-ase,Sql,Database,Sap Ase,我使用Sybase ASE数据库,并使用下面的sql在数据库中创建视图: create view dbo.vb_user_list (db_name, user_email, user_sex) as select 'db01' , email, sex from db01.dbo.emp_hdr where enable = 1 union select 'db02' , email, sex from
create view dbo.vb_user_list (db_name, user_email, user_sex) as
select 'db01' ,
email,
sex
from db01.dbo.emp_hdr
where enable = 1
union
select 'db02' ,
email,
sex
from db02.dbo.emp_hdr
where enable = 1
该视图显示了来自db01和db02的所有用户,并且可以正常工作
但是,当我想更改此视图以显示来自db03的用户时,我创建了一个sql,如下所示:
alter view dbo.vb_user_list (db_name, user_email, user_sex) as
select 'db01' ,
email,
sex
from db01.dbo.emp_hdr
where enable = 1
union
select 'db02' ,
email,
sex
from db02.dbo.emp_hdr
where enable = 1
union
select 'db03' ,
email,
sex
from db03.dbo.emp_hdr
where enable = 1
但其错误信息如下:
[ALTER - 0 rows, 0.002 secs] [Code: 102, SQL State: 37000] Incorrect syntax near '('.
我不明白为什么,有人能帮忙吗?您必须先删除视图,然后(重新)创建视图<代码>更改视图不受Adaptive Server Enterprise支持
有关更多信息,请参阅。您尚未说明您的ASE版本,因此有几个答案:
- 对于15.7之前的ASE版本,您需要删除并(重新)创建过程;您需要确保在删除视图之前获取权限和任何审核设置的副本,因为这些设置也需要在重新创建视图后重新创建
- 对于ASE 16.x,您可以使用
命令;虽然这基本上与下拉视图+创建或替换视图
相同,但一个好处是任何设置(如权限、审核设置)都将保持不变创建视图