现在的位置: 首页 > 综合 > 正文

在MS SQLSERVER中如何最快的速度清空所有用户表的数据

2012年11月05日 ⁄ 综合 ⁄ 共 501字 ⁄ 字号 评论关闭
有时候我们需要清空数据库中所有用户表的数据,如果一张表一张表的清空的话,遇到一个庞大的数据系统估计得崩溃了.  用游标加上用变量来引用表名就可以做到这一点. 用变量来引用表名对表操作可以用在存储过程中,根据需要动太选择引用某个表的数据或对其操作   估计用的不多,好玩而已:)
//定义游标
DECLARE tables_cursor CURSOR
   FOR
   SELECT name FROM sysobjects WHERE type = 'U' //选择用户表名
OPEN tables_cursor //打开游标连接

DECLARE @tablename sysname  // 定义变量
FETCH NEXT FROM tables_cursor INTO @tablename   //结果集中一行一行读取表名
WHILE (@@FETCH_STATUS <> -1)  //判断游标状态
BEGIN

   EXEC ('TRUNECATE TABLE ' + @tablename)   //清空表中的数据
   FETCH NEXT FROM tables_cursor INTO @tablename  //下一行数据
END

DEALLOCATE tables_cursor  //关闭游标

抱歉!评论已关闭.