Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
通过添加列、更改各种列属性或删除列,可以变更表的结构或列定义。
变更表前,最好使用 sa_dependent_views 系统过程来确定是否存在依赖于该表的视图。
如果要为带有相关视图的表变更模式,可能需要根据视图类型采取一些附加步骤:
相关常规视图 变更表模式时,数据库中表的定义会被更新。如果有相关常规视图,数据库服务器会在表变更操作执行后自动重新编译这些视图。如果对表模式进行更改后,数据库服务器不能重新编译相关常规视图,这可能是因为您所做的更改使视图定义失效。在这种情况下,必须改正视图定义。
相关实例化视图 如果有相关实例化视图,必须在变更表前禁用这些视图,然后在变更表后重新启用它们。如果对表模式进行更改后,不能重新启用相关的实例化视图,这可能是因为您所做的更改使实例化视图定义失效。此种情况下,必须删除实例化视图,然后用有效的定义重新创建,或在尝试重新启用实例化视图前对基表进行适当变更。
可以使用 ALTER TABLE 语句或 Sybase Central 更改表的所有者。更改表所有者时,可以指定是否保留表中的现有外键以及引用该表的外键。删除所有外键将会隔离该表,但在必要时会提供更高的安全性。还可以指定是否保留显式授予的现有特权。出于安全考虑,可以删除允许用户访问该表的所有显式授予的特权。隐式授予该表所有者的特权将会授予新的所有者,而从旧的所有者删除这些特权。
变更表删除表