刚刚发贴就找到了,郁闷TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。 语法
TRUNCATE TABLE name参数
name是要截断的表的名称或要删除其全部行的表的名称。注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。 TRUNCATE TABLE 不能用于参与了索引视图的表。示例
下例删除 authors 表中的所有数据。TRUNCATE TABLE authors权限
TRUNCATE TABLE 权限默认授予表所有者、sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员且不可转让。

解决方案 »

  1.   

    也可以清日志啊
    DUMP  TRANSACTION  你的数据库名  WITH  NO_LOG
      

  2.   

    ghj1976 (蝈蝈俊.net) 老大好:)
    如果不使用带where的删除就用用TRUNCATE TABLE 
    删除表中的所有行,而不记录单个行删除操作
    DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项
    RUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放2)1.数据库恢复模式改为“简单”模式
    2.用bcp将原表需删除数据导出一数据文件a,导出需保留数据到b;
    3.设置数据库trunc. log on chkp.为true;
    4.bcp a 到另一表;
    5.truncate 原表;
    6.bcp b到原表;
    7.设置数据库trunc. log on chkp.为false.exec sp_dboption yourDB,'trunc. log on chkpt.',true
    就可以在INSERT,UPDATE,DELETE时不写日志了
      

  3.   

    1: 删除LOG
    1:分离数据库
    2:删除LOG文件
    3:附加数据库
    此法生成新的LOG,大小只有500多K
       再将此数据库设置自动收缩
    2:清空日志
    DUMP  TRANSACTION  库名  WITH  NO_LOG    再:
    企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了