精华内容
下载资源
问答
  • 一、SQL语法 1、drop table 名称 eg: drop table dbo.Sys_Test 2、truncate table 名称 eg: truncate table dbo.Sys_Test 3、delete from 名称 where 列名称 = 值 eg: delete from dbo.Sys_Test where ...
    一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test 3、delete from 表名称 where 列名称 = 值 eg: delete from dbo.Sys_Test where test='test'二、drop,truncate,delete区别 1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
     drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。 2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。 注意:truncate 不能删除行数据,要删就要把表清空。 3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存
     以便进行进行回滚操作。 truncate与不带where的delete :只删除数据,而不删除表的结构(定义) 4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。 如果要删除表定义及其数据,请使用 drop table 语句。 5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table
     记录在日志中,所以它不能激活触发器。 6、执行速度,一般来说: drop> truncate > delete。 7、delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。 truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。
    
    展开全文
  • 使用sql删除数据库中所有表是不难的,就是遍历一下数据库中所有用户,并将它清除,下边是具体的sql语句,在关键部分已经作了详细的注释:代码如下复制代码--变量@tablename保存表名declare @tablename nva...

    来源:转载

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍。

    使用sql删除数据库中所有表是不难的,就是遍历一下数据库中所有用户表,并将它清除,下边是具体的sql语句,在关键部分已经作了详细的注释:

    代码如下

    复制代码

    --变量@tablename保存表名

    declare @tablename nvarchar(100)

    --将用户表全部保存到临时表#tablename中

    SELECT [name] into #tablename FROM sysobjects

    WHERE type = 'U';

    --当#tablename有数据时

    while(select count(1) from #tablename)>0

    begin

    --从#tablename中取第一条

    select top 1 @tablename=[name] from #tablename;

    --进行表删除操作,表名为变量,所以此处用到动态sql

    exec('drop table '+@tablename);

    --将此表名记录从#tablename中删除

    delete from #tablename where [name]=@tablename;

    end

    --最后删除临时表#tablename

    drop table #tablename可见sql里没有使用游标,而是使用了临时表用来遍历,到这里就达到了使用sql清除数据库中所有表的目的。

    另一种办法

    方便删除数据库中所有的数据表,清空数据库,有些有约束,不能直接delete,需要先删除库中的约束,代码如下

    代码如下

    复制代码

    --删除所有约束

    DECLARE c1 cursor for

    select'alter table ['+ object_name(parent_obj)+'] drop constraint ['+name+']; '

    from sysobjects

    where xtype ='F'

    open c1

    declare @c1 varchar(8000)

    fetch nextfrom c1 into@c1

    while(@@fetch_status=0)

    begin

    exec(@c1)

    fetch nextfrom c1 into@c1

    end

    close c1

    deallocate c1

    --删除数据库所有表

    declare @tname varchar(8000)

    set@tname=''

    select@tname=@tname+Name+','from sysobjects where xtype='U'

    select@tname='drop table '+ left(@tname,len(@tname)-1)

    exec(@tname)

    然后清空数据库中的所有表:

    如果需要删除存储过程等只需要将上面的做如下修改就行了的where xtype='U' 改成 where xtype='P',drop table 改成 drop Procedure

    附上清空数据表中所有数据

    清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.

    1.搜索出所有表名,构造为一条SQL语句

    代码如下

    复制代码

    declare @trun_name varchar(8000)

    set @trun_name=''

    select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0

    exec (@trun_name)

    该方法适合表不是非常多的情况,否则表数量过多,超过字符串的长度,不能进行完全清理.

    2.利用游标清理所有表

    代码如下

    复制代码

    declare @trun_name varchar(50)

    declare name_cursor cursor for

    select 'truncate table ' + name from sysobjects where xtype='U' and status > 0

    open name_cursor

    fetch next from name_cursor into @trun_name

    while @@FETCH_STATUS = 0

    begin

    exec (@trun_name)

    print 'truncated table ' + @trun_name

    fetch next from name_cursor into @trun_name

    end

    close name_cursor

    deallocate name_cursor

    这是我自己构造的,可以做为存储过程调用, 能够一次清空所有表的数据,并且还可以进行有选择的清空表.

    3.利用微软未公开的存储过程

    代码如下

    复制代码

    exec sp_msforeachtable "truncate table ?"

    转自:http://www.111cn.net/database/mssqlserver/48639.htm

    展开全文
  • EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL' EXEC sp_MSForEachTable 'DELETE FROM ?' EXEC sp_MSForEachTable 'ALTER TA...

    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
    EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
    EXEC sp_MSForEachTable 'DELETE FROM ?'
    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
    EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
    EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'

    转载于:https://www.cnblogs.com/xieshouzhu/p/3214579.html

    展开全文
  • 好久没写存储过程了,现在需要编写一段语句,用于删除所有表中CommunityID为特定值条件删除,然后我写了如下测试 exec sp_msforeachtable @Command1=' IF COL_LENGTH( ''?'' , ''CommunityID'') IS NOT NULL ...
  • EXECUTEsp_msforeachtable'deletefrom?'或者EXECUTEsp_msforeachtable'truncatetable?'

    EXECUTEsp_msforeachtable'deletefrom?'
    或者
    EXECUTEsp_msforeachtable'truncatetable?'

    展开全文
  • SQL语句怎么删除表的所有数据

    万次阅读 2019-10-30 14:43:34
    有两种办法可以删除表的所有数据: 1、TRUNCATE TABLE 删除表所有行,而不记录单个行删除操作。 语法 TRUNCATE TABLEname 参数 name 是要截断名称或要删除其全部行名称。 2、Delete from ...
  • 用一条SqlServer语句即可删除当前数据库中所有表的数据表的结构保持不变。
  • 说到删除表数据的关键字,大家记得最多的可能就是delete了然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的老大------drop出没场合:...
  • MySQL批量删除多张表一条SQL语句 先执行 删除所有pre_前缀的表 SELECT CONCAT( 'drop table ',table_name,'; ') FROM information_schema.tables where information_schema.tables.TABLE_NAME LIKE 'pre_%' ;...
  • SQL语句删除表所有数据

    千次阅读 2010-08-06 12:22:00
    TRUNCATE TABLE 删除表的所有行,而不记录单个行删除操作。 语法 TRUNCATE TABLE name 参数 name 是要截断名称或要删除其全部行名称。 注释 TRUNCATE TABLE 在功能上与不带 WHERE 子句 ...
  • 使用sql删除数据库中所有表是不难的,就是遍历一下数据库中所有用户,并将它清除,下边是具体的sql语句,在关键部分已经作了详细的注释: 代码如下 复制代码 --变量@tablename...
  • select 'delete from ' + Name + ';' from sysobjects where xtype='U' and name like 'TBC%' order by name asc select 'truncate table ' + Name + ';' from sysobjects where xtype='U' order by ...该条语句执...
  • 如果要删除数据所有数据只要遍历...使用sql删除数据库中所有是不难的,就是遍历一下数据库中所有用户,并将它清除,下边是具体的sql语句,在关键部分已经作了详细的注释:  代码如下 复制代码 --变量
  • SQL删除表数据语句

    2020-11-11 15:49:20
    如果你想从数据库删除记录,那么需要使用...最后,要特别小心是,和UPDATE类似,不带WHERE条件DELETE语句删除整个表的数据: DELETE FROM students; 这时,整个表的所有记录都会被删除。所以,在执行DELET
  • declare @name nvarchar(255),@sql nvarchar(4000)DECLARE task_cursor CURSOR LOCAL FOR --游标定义select [name] from sysobject
  • 优化场景:A 数据,B为A中已经失效的数据记录,实现从A中删除所有失效数据。 适用 In 关键字实现的SQL: delete from A where A.ID in ( select ID from B) 使用 inner Join 实现...
  • 删除表数据,释放表空间sql语句

    千次阅读 2019-01-24 10:07:57
    truncate table 删除表的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用计数值重置为该列种子。如果想保留标识计数值,请改用delete。...
  • 一次性删除数据库所有表所有存储过程 SQL语句 今天转移数据库数据,需要把数据库原来的表和存储过程清空。删除所有的表:如果由于外键约束删除table失败,则先删除所有约束: --/第1步**********删除所有表...
  • 本文章总结了同时删除多个数据与同时删除多个数据的关系数据的方法,有需要的朋友可参考一下。批量删除表删除所有pre_前缀的代码如下复制代码SELECT CONCAT( 'drop table ',table_name,'; ') FROM ...
  • 主要介绍了删除织梦所有待审核稿件sql语句,需要注意是archives是dedecms主,addonarticle 新闻信息,注意,运行后未审核的数据全被删除,小心使用
  • 删除父子结构数据SQL语句

    千次阅读 2010-01-27 09:47:00
    删除一个父结点时,删除其下的所有子结点。注:此方法只能在SQL Server 2005中使用,SQL Server 2000不支持。WITH tempdept AS ( SELECT root.deptid, root.parentid FROM department root 
  • 不过上面一句SQL语句一次只能修改一张,如果要批次修改多个,上面方法就不适用了。这时,我们可以使用 information_schema 中 TABLES ,来实现批次修改目的。 在MySQL中,把 information_schema 看作是...
  • 从一个删除数据,使用DELETE语句,有两种使用DELETE方式: 1.从删除特定行 ,注意不要省略WHERE子句 2.从删除所有行  DELETE FROM Customers  WHERE cust_id = '10000006';  ...
  • 前言 1.更新数据 2.删除数据 ...上一章讲了怎么向中插入数据,本文接着讲怎么更新数据删除数据。...更新数据使用UPDATE语句,可以更新中特定行,也可以更新所有的行。注意不要省略WHERE...
  • SQL语句--清除数据表的所有记录

    千次阅读 2018-09-29 09:45:20
    对数据库进行清空,要求高效、快速。以下是比较有效的解决方法。 TRUNCATE TABLE name  还有一个排重的SQL解决方法 ...Truncate是SQL中的一个删除数据表内容的语句,用法是:  语法  TRUNCATE...
  • Sql语句 含义 备注 DESC EMP; 查询表结构 EMP为表名 SELECT table_name FROM user_tables;... 查询emp表中的所有记录 DELETE FROM 表名称 WHERE 列名称 = 值 DELETE 语句用于删除表行。 DELETE FROM Person WH...
  • MSQL启动和登录命令 ...执行本地SQL文件中 SQL 语句: source ./SQL/sql-file.sql 数据库相关操作 显示所有数据库: show databases; 创建数据库: create tabase <db-name>; ...
  • sql语句删除数据库表几种方式及区别deletetruncatedrop使用场景 ...删除表所有数据,但不能与where一起使用; 保留表结构 不记录日志 不可以恢复数据 重建索引 速度比delete快,使用系统和事务日志资源少 返回

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,788
精华内容 715
关键字:

删除表所有数据的sql语句