刚刚发贴就找到了,郁闷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 固定数据库角色成员且不可转让。
删除表中的所有行,而不记录单个行删除操作。 语法
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 固定数据库角色成员且不可转让。
解决方案 »
- 来看看,为什么sqlserver 的复制订阅能够实现数据的读写分离?
- 关于dbase 基础上的Reindex和SQL中什么概念相同?
- |zyciis| 一个SQL2005的奇怪问题,我的一条查询存储过程,开始点击查询的时候要4秒,但点多以后就1秒就可以了 这是怎么回事
- 如何使用profiler来跟踪查询得到查询时间?
- 批量修改(100分求解)
- 关于Powerdesigner导出关系图问题
- 下载了Delphi+SQL仓库信息管理系统不全,高分求库存盘点
- 触发器中无法使用链接服务器,送500分?
- 求一语句分配数据,见内容!
- 如何实现无日志更新
- 键列信息不足,更新影响到过多的行,是什么意思呢?
- 帮忙写个求时间的函数,
DUMP TRANSACTION 你的数据库名 WITH NO_LOG
如果不使用带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时不写日志了
1:分离数据库
2:删除LOG文件
3:附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG 再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了