Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 添加、更改和删除数据 » 使用 DELETE 删除数据

 

从表中删除所有行

可以使用 TRUNCATE TABLE 语句作为快速删除表中所有行的方法。这样要比不带任何条件的 DELETE 语句更快,因为 DELETE 会记录每个更改,而 TRUNCATE 不会记录被删除的单个行。

除非执行 DROP TABLE 语句,否则使用 TRUNCATE TABLE 语句清空的表的表定义仍将保留在数据库中,同时还保留其索引和其它关联的对象。

如果其它表的行通过参照完整性约束引用该表,则不能使用 TRUNCATE TABLE。请从外表中删除这些行,或截断外表然后再截断主表。

截断基表或执行批量装载操作会引起索引(常规或文本)和相关实例化视图中的数据失效。您应该首先截断索引和相关实例化视图中的数据,执行 INPUT 语句,然后重建或刷新索引和实例化视图。请参见TRUNCATE 语句TRUNCATE TEXT INDEX 语句

TRUNCATE TABLE 语法

TRUNCATE TABLE 的语法如下:

TRUNCATE TABLE table-name

例如,要删除 SalesOrders 表中的所有数据,请输入以下语句:

TRUNCATE TABLE SalesOrders;

TRUNCATE TABLE 语句不触发在该表上定义的触发器。

输入 ROLLBACK 语句取消对数据库的这些更改:

ROLLBACK;