清空数据库的所有表

作者:leen 来源:ITPOW(原创) 日期:2007-3-22

数据库中有几十个表,全部需要清空,有什么快捷的方法吗?

我们的思路,批量生成删除记录的语句,然后放在查询分析器中运行。

第一步,列出表名。

每个数据库都有 sysobjects 这个系统表,里面保存了系统对象,包括表名。在查询分析器中执行如下语句:

select name from sysobject where xtype='U'

xtype 为 U 表示只显示出用户名。

第二步,拷贝表名。

选中结果窗口的记录,然后 Ctrl+C 复制。

第三步,创建 SQL 语句。

打开 FrontPage 2003,通过替换操作在每一行前面加上 "truncate table "(后面有个英文空格)。

需要说明,有些朋友没有用 FrontPage 2003,或者暂时还不会使用跨行替换的操作,也没有其它跨行替换的工具,可以在第一步中,使用如下 SQL 语句:

select 'prefix_'+name from sysobjects where xtype='U'

将结果复制到记事本中,替换时用 "truncate table " 替换 "prefix_"(如果原表名中恰好含有 prefix_,则不能使用全部替换)。

第四步,执行 SQL 语句。

复制 SQL 语句,并在查询分析器中粘贴、执行。

说明

truncate table 的意义及用法请参见:TRUNCATE TABLE 和 DELETE,如果表有外键约束引用或者我们有特定需求,则不能使用 truncate table,在创建 SQL 语句时,应换成 delete 语句,同时受设计的影响,在这种情况下,可能需要适当调整各个 SQL 语句的顺序。

相关文章