在 Sybase ASE 数据库中更改视图
Alter View in Sybase ASE Database
我使用 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 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 '('.
我不明白为什么,有人可以帮忙吗?
您必须先删除然后(重新)创建您的视图。 Alter View
Adaptive Server Enterprise 不支持。
参考here了解更多信息。
您没有说明您的 ASE 版本,所以有几个答案:
对于最高 15.7 的 ASE 版本,您需要删除然后(重新)创建过程;您需要确保在删除视图之前获取您的权限和任何审核设置的副本,因为一旦重新创建视图,这些设置也需要重新创建
对于ASE16.x,可以使用create or replace view
命令;虽然这与 drop view
+ create view
基本相同,但一个好处是任何设置(例如,权限、审核设置)都将保持不变
我使用 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 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 '('.
我不明白为什么,有人可以帮忙吗?
您必须先删除然后(重新)创建您的视图。 Alter View
Adaptive Server Enterprise 不支持。
参考here了解更多信息。
您没有说明您的 ASE 版本,所以有几个答案:
对于最高 15.7 的 ASE 版本,您需要删除然后(重新)创建过程;您需要确保在删除视图之前获取您的权限和任何审核设置的副本,因为一旦重新创建视图,这些设置也需要重新创建
对于ASE16.x,可以使用
create or replace view
命令;虽然这与drop view
+create view
基本相同,但一个好处是任何设置(例如,权限、审核设置)都将保持不变