本节将介绍如何从数据库中删除表。可以使用 Sybase Central 或 Interactive SQL 执行此任务。在 Interactive SQL 中,删除 (Delete) 表也称作将其删除 (Drop)。
不能删除在 SQL Remote 发布中用作项目的表。如果在 Sybase Central 中试图执行此操作,则将出现错误。另外,如果要删除带有相关视图的表,可能需要采取一些如以下各节中所述的附加步骤。
删除表时,表的定义会从数据库中删除。如果存在相关常规视图,数据库服务器会在执行表变更操作后尝试重新编译并重新启用这些视图。如果不能这样做,很可能是因为表删除操作使视图定义失效。在这种情况下,必须改正视图定义。请参见变更常规视图。
如果存在相关实例化视图,后续的刷新操作将会失败,因为视图的定义不再有效。在这种情况下,必须删除实例化视图,然后以有效的定义重新创建。请参见创建实例化视图。
变更表前,最好使用 sa_dependent_views 系统过程来确定是否存在依赖于该表的视图。请参见sa_dependent_views 系统过程。
有关表删除操作将如何影响视图依赖性的概括说明,请参见视图依赖性。
以具有 DBA 权限的用户身份或以表所有者身份连接到数据库。
如果要删除的表存在相关实例化视图,则禁用每个实例化视图:
在左窗格中,双击 [视图]。
右击实例化视图,并选择 [禁用]。
双击 [表]。
右击表,然后选择 [删除]。
单击 [是]。
以具有 DBA 权限的用户身份或以表所有者身份连接到数据库。
如果要删除的表存在相关实例化视图,则使用 ALTER MATERIALIZED VIEW ...DISABLE 语句来禁用每个相关实例化视图。
执行 DROP TABLE 语句。
以下 DROP TABLE 命令会删除 Skills 表中的所有记录,然后从数据库中删除 Skills 表的定义
DROP TABLE Skills; |
与 CREATE 语句类似,DROP 语句在删除表前后会自动执行 COMMIT 语句。这会使上次执行 COMMIT 或 ROLLBACK 后对数据库的所有更改成为永久更改。DROP 语句还会删除表上的所有索引。请参见DROP TABLE 语句。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |