MySQL删除s表命令_SQLServer 命令批量删除数据库中指定表(游标循环删除)

DECLARE @tablename VARCHAR(30),

@sql VARCHAR(500)

DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ONLY FOR

SELECT name FROM sysobjects WHERE name LIKE 'PUB%' AND type='U'

OPEN cur_delete_table

FETCH NEXT FROM cur_delete_table INTO @tablename

WHILE @@FETCH_STATUS = 0

BEGIN

SELECT @sql='delete from  '+@tablename

EXEC (@sql)

FETCH NEXT FROM cur_delete_table INTO @tablename

END

CLOSE cur_delete_table

DEALLOCATE cur_delete_table

================================================

有时候我们需要清空数据库中所有用户表的数据,如果一张表一张表的清空的话,遇到一个庞大的数据系统估计得崩溃了. 用游标加上用变量来引用表名就可以做到这一点. 用变量来引用表名对表操作可以用在存储过程中,根据需要动太选择引用某个表的数据或对其操作

//定义游标 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 ('TRUNCATE TABLE ' + @tablename)   //清空表中的数据

FETCH NEXT FROM tables_cursor INTO @tablename //下一行数据

END

DEALLOCATE tables_cursor //关闭游标

例如:

CREATE proc ClearAllUserTable

as

begin

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

--print   @tablename

EXEC ('TRUNCATE TABLE ' + @tablename)

FETCH NEXT FROM tables_cursor INTO @tablename

END

DEALLOCATE tables_cursor

end;

GO

======================================================================

SQLSERVER批量删除数据库中的表,存储过程,触发器

MSSQL批量删除数据库中的表或者存储过程

先在系统表中找到要处理的表名或者是存储过程的名字,在用游标对其进行处理

注意  sysobjects.xtype的值不同 删除命令是不同的如删除存储过程用drop PROCEDURE PROCEDURENAME 删除表用 drop table  tablename  sysobjects.xtype的值表示的意思如下表:

C:检查约束。

D:默认的约束

F:外键约束

L:日志

P:存储过程

PK:主键约束

RF:复制过滤存储过程

S:系统表格

TR:触发器

U:用于表格。

UQ:独特的约束。

批量处理的代码如下:

DECLARE cursorname cursor for select 'drop PROCEDURE  '+name from sysobjects where name like 'xx%' and xtype = 'p' --删除对应的存储过程

DECLARE cursorname cursor for select 'drop table  '+name from sysobjects where name like 'xx%' and xtype = 'u' --删除对应的表

open cursorname

declare @curname sysname

fetch next from cursorname into @curname

while(@@fetch_status=0)

begin

exec(@curname)

fetch next from cursorname into @curname

end

close cursorname

deallocate cursorname

SQL触发器批量删除数据库中的表

以下通过触发器批量删除数据库中的表,SQL2008已验证 DECLARE @Table NVARCHAR() DECLARE @Count Int = DECLARE tmpCur CURSOR FO ...

分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

(转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

MySQL数据库中,使用游标循环遍历

/*对*dt库下的所有数据表删除docuemttype为空和documenttype为MD,PD,ET的数据:delete from 表名 where length(documenttype)< ...

Java删除数据库中的数据

1:删除数据库中数据表中的数据同样也是一个非常用的技术,使用executeUpdate()方法执行用来做删除SQL的语句可以删除数据库表中的数据 2:本案例使用Statement接口中的execute ...

MySql 查询数据库中所有表名

查询数据库中所有表名select table_name from information_schema.tables where table_schema='csdb' and table_type= ...

MySql 查询数据库中所有表名以及对比分布式库中字段和表的不同

查询数据库中所有表名select table_name from information_schema.tables where table_schema='数据库名' and table_type= ...

C&num;:CodeSmith根据数据库中的表创建C&num;数据模型Model &plus; 因为没有钱买正版,所以附加自己写的小代码

对于C#面向对象的思想,我们习惯于将数据库中的表创建对应的数据模型: 但假如数据表很多时,我们手动增加模型类会显得很浪费时间: 这个时候有些人会用微软提供的EntityFrameWork,这个框架很强 ...

随机推荐

Logstash实践&colon; 分布式系统的日志监控

文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

java List的排序

List自定义排序 1.第一种方法,就是list中对象实现Comparable接口,重写compareTo接口, 对排序的字段进行比较.2.第二种方法,就是在重载Collections.sort方法. ...

dynamic 的使用 待续

Dynamic 使用场景之一 : 替代反射 class Me { public string Blog { get; set; } public string GetName() { return&q ...

viewer&period;js图片查看器插件(可缩放&sol;旋转&sol;切换)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值