精华内容
下载资源
问答
  • 清空表数据,保留视图,存储过程,函数,以及保留表约束、触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳。对用友、金蝶等数据库恢复有时候能达到好的效果。 清除表数据有两种方法: 一种用...

    清空表数据,保留视图,存储过程,函数,以及保留表约束、触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳。对用友、金蝶等数据库恢复有时候能达到好的效果。

    清除表数据有两种方法:

    一种用delete from [表名] ,这种方法对于大数据库,速度慢,会产生很大的日志信息,对于小库,速度可以忽略;

    另一种是truncate table  [表名] ,这种方法速度快,但清除不了具有外键的表数据。

     

    在清除表数据时,可以采用两种方法结合。

     

    清除表数据时先禁用一切约束,清除完成以后再次启用约束就行了。

     

    1、 采用truncate table  [表名] 清除表数据,排除具有外键属性的表,清除语句获取如下:

    Use [要操作的库名字]

    -----------------------------------------------------------------------

    select

       'alter table  [' +name+ '] nocheck constraint all; alter table  [' +name + '] disable trigger all;

    truncate table ['+name+'];'

     + ' alter table  [' +name + '] enable trigger all; alter table  [' +name + '] check constraint all;

     go'

     from sysobjects where id not in(select   parent_object_id from sys.foreign_keys ) and id not in(select   referenced_object_id from sys.foreign_keys ) and  type='U'

    -----------------------------------------------------------------------

     

    上述SQL语句得到的结果,再次在SQL查询分析器里运行。

     

    2、用 delete from [表名] 清除表数据语句获取如下

    Use [要操作的库名字]

    -----------------------------------------------------------------------

    SELECT 'alter table  [' +object_name (id) + '] nocheck constraint all; alter table  [' +object_name (id) + '] disable trigger all;

     delete from ['+object_name (id)+'];' + '

     alter table  [' +object_name (id) + '] enable trigger all; alter table  [' +object_name (id) + '] check constraint all;

    go'

    TableName from sysobjects where   type='U'

    -----------------------------------------------------------------------

    3、 有些MS SQL Server查询分析器,对于 上述语句后面的 go ,copy出来后不自动换行,可以把运行结果保存到文本文件中,查询分析器打开以后,会自动换行。如果不自动换行,sql语句执行报错。

    4、 可能遇到清除不了的某些表,查看它和哪些表关联外键,先把两个表的约束同时禁用,再用delete from [表名],完了以后,两个表同时恢复约束使用。

    5、 查看清除数据是否成功彻底,用下述语句查看记录数量:

    Use [要操作的库名字]

    -----------------------------------------------------------------------

    SELECT object_name (i.id) TableName,

       rows as RowCnt

    FROM sysindexes i

    INNER JOIN sysObjects o

    ON (o.id = i.id AND o.xType = 'U ')

    WHERE indid < 2 and RowCnt>0

    ORDER BY RowCnt desc

    展开全文
  • 清空表数据,保留视图,存储过程,函数,以及保留表约束、触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳。对用友、金蝶等数据库恢复有时候能达到好的效果。 清除表数据有两种方法: 一种用...

    清空表数据,保留视图,存储过程,函数,以及保留表约束、触发器等等,可以给故障数据库预留一个好的躯壳,把坏库数据导入此躯壳。对用友、金蝶等数据库恢复有时候能达到好的效果。

    清除表数据有两种方法:

    一种用delete from [表名] ,这种方法对于大数据库,速度慢,会产生很大的日志信息,对于小库,速度可以忽略;

    另一种是truncate table [表名] ,这种方法速度快,但清除不了具有外键的表数据。

    在清除表数据时,可以采用两种方法结合。

    清除表数据时先禁用一切约束,清除完成以后再次启用约束就行了。

    1、 采用truncate table [表名] 清除表数据,排除具有外键属性的表,清除语句获取如下:

    Use [要操作的库名字]


    select

    'alter table [' +name+ '] nocheck constraint all; alter table [' +name + '] disable trigger all;

    truncate table ['+name+'];'

    • ' alter table [' +name + '] enable trigger all; alter table [' +name + '] check constraint all;

      go'

      from sysobjects where id not in(select parent_object_id from sys.foreign_keys ) and id not in(select referenced_object_id from sys.foreign_keys ) and type='U'


    上述SQL语句得到的结果,再次在SQL查询分析器里运行。

    2、用 delete from [表名] 清除表数据语句获取如下

    Use [要操作的库名字]


    SELECT 'alter table [' +object_name (id) + '] nocheck constraint all; alter table [' +object_name (id) + '] disable trigger all;

    delete from ['+object_name (id)+'];' + '

    alter table [' +object_name (id) + '] enable trigger all; alter table [' +object_name (id) + '] check constraint all;

    go'

    TableName from sysobjects where type='U'


    3、 有些MS SQL Server查询分析器,对于 上述语句后面的 go ,copy出来后不自动换行,可以把运行结果保存到文本文件中,查询分析器打开以后,会自动换行。如果不自动换行,sql语句执行报错。

    4、 可能遇到清除不了的某些表,查看它和哪些表关联外键,先把两个表的约束同时禁用,再用delete from [表名],完了以后,两个表同时恢复约束使用。

    5、 查看清除数据是否成功彻底,用下述语句查看记录数量:

    Use [要操作的库名字]


    SELECT object_name (i.id) TableName,

    rows as RowCnt

    FROM sysindexes i

    INNER JOIN sysObjects o

    ON (o.id = i.id AND o.xType = 'U ')

    WHERE indid < 2 and RowCnt>0

    ORDER BY RowCnt desc

    转载于:https://blog.51cto.com/13803354/2395611

    展开全文
  • 如何清空RECYCLEBIN

    千次阅读 2009-11-24 17:17:00
    回收站,从原理上来说就是一个数据字典,放置用户Drop掉的数据库对象信息。当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如index,constraint等放到回收站(RecycleBin)中,后续如果发现...

     

     

    Oracle10g提供了类似操作系统中的回收站功能。回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息。当drop table的时候,实际上只是将其重命名,并将table以及相关联的对象如indexconstraint等放到回收站(RecycleBin)中,后续如果发现drop错了table,可以使用flashback table命名将回收站中的table还原,这就是Oracle10gFlashback Drop功能。

    1.        启用/禁用RecycleBin

    通过设置初始化参数recyclebin,可以控制是否启用回收站功能,默认是开启的。
    ;`:v | } h;w2?)L r B0SQL> alter system set recyclebin=off;

    系统已更改。

    SQL> alter system set recyclebin=on;

    系统已更改。

    SQL> alter session set recyclebin=off;

    会话已更改。

    SQL> alter session set recyclebin=on;

    会话已更改。

    2.        查看回收站:

    SQL> SHOW recyclebin;

    或者

    SQL>select * from recyclebin;

    除非拥有sysdba权限,否则每个用户只能看到属于自己的对象。所以,对于用户来说,好像每个人都拥有自己的回收站。即使用户有删除其他schema对象的权限,也只能在recyclebin中看到属于自己的对象。

    3.        回收站对象的操作:

    当一个表被删除并移动到"回收站"中,它的名字要进行一些转换。这样的目的是为了避免同类对象名称的重复。(这一点和Windows操作系统的回收站不同,Windows中的回收站经过了特殊的处理,操作系统文件可以重名。)转换后的名字格式如下:

    BIN$unique_id$version其中BIN代表RecycleBinunique_id是数据库中该对象的唯一标志,26个字符长度version表示该对象的版本号。

    注意,以下几种drop不会将相关对象放进RecycleBin

    drop tablespace:会将RecycleBin中所有属于该tablespace的对象清除

    drop user:会将RecycleBin中所有属于该用户的对象清除

    drop cluster:会将RecycleBin中所有属于该cluster的成员对象清除

    drop type:会将RecycleBin中所有依赖该type的对象清除

    l        已经放到回收站里的表是不能用drop命令删除的(注意对象名字上的双引号)

    SQL> DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0" ;

    DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"

    *

    ERROR at line 1:

    ORA-38301: can not perform. DDL/DML over objects in Recycle Bin

    如果要清掉该对象,使用purge命令:

    SQL> PURGE table "BIN$V3f/oYUITrCEF2cotS5JaA==$0" ;

    Table purged.

    l        如果直接清空所有的Recycle Bin中的对象:

    SQL> PURGE RECYCLEBIN;

    Recyclebin purged.

    Purge recyclebin可以清除执行该命令的用户所能看到的所有recyclebin对象。也就是普通用户能清除属于自己的对象,而sysdba用户则能清除所有recyclebin中的对象。

    l        恢复表,用回闪表的功能:

    SQL> FLASHBACK TABLE table_name TO BEFORE DROP;

    Flashback complete.

    默认的恢复是第一个被删除的表。如果要恢复指定的表,可以在FLASHBACK TABLE后面加上指定的RECYCLEBIN参数指定其他的名字:

    语句FLASHBACK TABLE [已删除TABLE|"RECYCLEBIN中的名字"] TO BEFORE DROP;

    但当你在RECYCLEBIN内有2张相同名字的表时候,只有通过"RECYCLEBIN中的名字"来闪回指定的表,用上面方法只闪回第一个被删除的同名表。

    l        Purge tablespace tablespace_name可以清除RecycleBin属于指定tablespace的所有对象。ITPUB个人空间0? M }0~+P x4A J
    SQL> purge tablespace users;

    表空间已清除。

    Purge tablespace tablespace_name user user_name则可以清除Recycle中属于指定tablespace和指定user的所有对象。ITPUB个人空间3Q+S Q E Z
    SQL> purge tablespace users user ning;

    表空间已清除。

    l        清除表时,同时也会清除依赖这张表的约束,如索引。可以指定只清除表相应的约束,如:PURGE INDEX IDX_TEST

    表上的对象如索引、触发器在表被闪回后是不会被同时闪回的,而是保持了在回收站中名字。一些依赖这张表的代码对象如视图、存储过程在表被删除后会失效,在表被闪回后不会被自动重新编译,而要手工重新编译他们。相关的信息被保存在视图USER_RECYCLE中。可以用以下语句来获得这些索引、触发器对象的原有名称:

    1 SQL> SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE

    2 FROM USER_RECYCLEBIN
    A4})a R'd+C$l e.F0
     
    3 WHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM  USER_RECYCLEBIN
    _)Z7R(? Z0
      
    4 WHERE ORIGINAL_NAME = 'ABC')
    m m4x Z#b;O j0
      
    5 AND ORIGINAL_NAME != 'ABC';
    8~:_ ]$G s S0
      
    OBJECT_NAME ORIGINAL_N TYPE
    3T U0D;r4C"q0]$L0
      
    ------------------------------ ---------- --------
    $U Q p C,l;y4l+k(u)`0
      BIN$1++ilvsQQ7mfPh2pvont5A==$0 IDX_TEST INDEX

    可以用以下方式来恢复索引:

    SQL> ALTER INDEX " BIN$1++ilvsQQ7mfPh2pvont5A==$0" RENAME TO IDX_TEST;

      一个例外就是位图索引被删除后是不会被保存在回收站中的,也无法从上述视图中查到,需要用其他方式来恢复。

    展开全文
  • 如何清空matlab的代码 机器学习理论实验作业 ● 组员信息:潘国鸿 操作系统 windows 10 语言 python ####● 作业题目和内容 实验一 《多源数据集成、清洗和统计》 题目 广州大学某班有同学100人,现要从两个数据源...
  • 如何存储数据5-4 数据库块的结构5-5 空间和数据文件5-6 Oracle 管理文件(OMF) 5-7 空间中的空间管理5-8 浏览存储结构5-9 创建新空间5-10 本地管理空间的存储5-12 预配置数据库中的空间5-14 变更空间5-...
  • 一个好用的数据库

    2008-05-14 08:36:06
    <br>三、实例练习 <br>下面就通过上面的例子一起来看一下这个类到底怎么样,为了方便,我建了一个简单的access数据库test.mdb,在这个数据库中也只有一张emp,它有三个字段。在下面的工程的InitInstance ()...
  • mysql内存操作?

    2009-07-17 18:19:03
    最近优化项目,搞了很多东西, 想了解下mysql的内存,存放些状态信息, ...1、数据库重起,内存清空了,你得有一个机制定期把内存的counter flush到硬盘如何做这个counter flush操作?
  • 第一部分 界面设计

    2013-10-22 23:10:34
    实例169 如何清空系统回收站 实例170 如何删除文件到回收站 实例171 如何启动控制面板程序 实例172 如何在系统控制面板中添加项目 实例173 如何为计算机增加启动日志 实例174 如何获取操作系统的启动模式 实例...
  • 软件用到的技巧:透明窗体,替换数据库清空数据库,怎样让用户自定义需要显示的数据项目,在程序中捆绑其他文件,并在运行的时候释放出来,如何对MSFlexgrid控件按照表头进行排序,让MSFlexgrid支持鼠标滚轮...
  • 实例169 如何清空系统回收站 实例170 如何删除文件到回收站 实例171 如何启动控制面板程序 实例172 如何在系统控制面板中添加项目 实例173 如何为计算机增加启动日志 实例174 如何获取操作系统的启动模式 实例...
  • 实例169 如何清空系统回收站 实例170 如何删除文件到回收站 实例171 如何启动控制面板程序 实例172 如何在系统控制面板中添加项目 实例173 如何为计算机增加启动日志 实例174 如何获取操作系统的启动模式 实例...
  • 实例169 如何清空系统回收站 实例170 如何删除文件到回收站 实例171 如何启动控制面板程序 实例172 如何在系统控制面板中添加项目 实例173 如何为计算机增加启动日志 实例174 如何获取操作系统的启动模式 实例...
  • Visual C++编程技巧精选500例.pdf

    热门讨论 2012-09-01 15:01:50
    276 如何清空IE历史记录? 277 如何清除IE地址栏历史记录? 278 如何添加IE浏览器收藏夹内容? 279 如何使用默认浏览器打开指定网页? 280 如何清除上次登录用户历史记录? 281 如何强制操作系统只执行规定的程序? 282 ...
  • IIS6.0 IIS,互联网信息服务

    热门讨论 2010-08-23 21:20:55
    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft ... 二、本部分常见问题解答 Q:如何修改FTP服务器登录成功或退出时的系统提示信息? A:在相应的FTP站点上单击右键,选...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器,...
  • 实例285 将数据库统计信息保存为Excel文件 372 实例286 将数据库数据导出为HTML格式文件 375 实例287 将数据库内容导出为文本文件 377 8.9 数据库其他操作 379 实例288 系统错误记录 379 实例289 如何将...
  • 4.1.7 报告表信息 132 4.1.8 删除表 132 4.2 排序规则基础 133 4.2.1 查看排序规则元数据 133 4.2.2 指定列的排序规则 134 4.3 键 134 4.3.1 创建有主键的表 135 4.3.2 为既有表增加主键约束 136 ...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器,...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。 《SQL Server 2008管理员必备指南》重要主题: 规划、部署和配置SQL Server 2008 管理服务器,...
  • MySQL命令大全

    2018-01-15 11:19:17
    6、当前数据库包含的表信息: mysql> show tables; (注意:最后有个s) 三、表操作,操作之前应连接某个数据库 1、建表 命令:create table <表名> ( <字段名> <类型> [,..<字段名n> <类型n>]); mysql> ...
  • 实例262 利用数据集组件实现临时的存储功能 341 实例263 制作简单的数据库操作软件 342 8.3 图片、多媒体数据录入技术 343 实例264 向access数据库录入图片 343 实例265 从access数据库提取图片 345...
  • 图书作者: 明日科技 图书编号: 9787115277589 ...实例262 利用数据集组件实现临时的存储功能 341 实例263 制作简单的数据库操作软件 342 8.3 图片、多媒体数据录入技术 343 实例264 向access数据库...
  • 7.2.1 在SQL Server Management Studio中查看数据库信息 161 7.2.2 使用T-SQL查看数据库信息 163 7.2.3 检查系统和示例数据库 164 7.2.4 检查数据库对象 164 7.3 创建数据库 166 7.3.1 在SQL Server ...
  • 11.9 如何清空CacheLite缓存 11.9.1 解决方案 11.9.2 讨论 11.10 如何缓存函数调用 11.11 本章小结 第12章 XML和Websewice 12.1 什么样的XML技术可用于PHP5 12.2 为什么使用PHP的XML扩展,而非PHP字符串函数 12.2.1 ...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    103 <br>0167 锁定文本框内的文本 103 <br>0168 使用Message.Show输出用户信息 104 <br>5.3 图片数据处理技巧 104 <br>0169 如何将图片存入数据库 104 <br>0170 如何将图片从数据库中读取...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。  《SQL Server 2008管理员必备指南》重要主题:  规划、部署和配置SQL Server 2008  管理...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。  《SQL Server 2008管理员必备指南》重要主题:  规划、部署和配置SQL Server 2008  管理...
  • 无论您是学生还是数据库领域的从业人员,都可从《SQL Server 2008管理员必备指南》获得解决问题和完成工作所需的信息。  《SQL Server 2008管理员必备指南》重要主题:  规划、部署和配置SQL Server 2008  管理...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

数据库如何清空表信息