sql批量删除数据与批量删除数据库表语句

游标删除方法

 代码如下 复制代码

//定义游标

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 ('TRUNECATE TABLE ' + @tablename) //清空表中的数据

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

END

 

DEALLOCATE tables_cursor //关闭游标

sqlserver/42850.htm target=_blank >sql存储过程实例地

 代码如下 复制代码

Create PROCEDURE Batch_Delete
@TableName nvarchar(100), --表名
@FieldName nvarchar(100), --删除字段名
@DelCharIndexID nvarchar(1000)
as
DECLARE @PointerPrev int
DECLARE @PointerCurr int
DECLARE @TId NVARCHAR(50), @sql NVARCHAR(1000)

Set @PointerPrev = 1
while (@PointerPrev < LEN(@DelCharIndexID))
Begin
Set @PointerCurr = CharIndex(',',@DelCharIndexID,@PointerPrev)
if(@PointerCurr>0)
Begin
SET @TId = cast(SUBSTRING(@DelCharIndexID, @PointerPrev, @PointerCurr - @PointerPrev) As NVARCHAR(50))
SET @sql = 'Delete From '+ @TableName +' Where '+ @FieldName + ' = '''+ @TID+''''
Exec(@Sql)
Print('======='+@TId+'=======sql'+@Sql)
SET @PointerPrev = @PointerCurr + 1
Print(@PointerPrev)
End
else
Begin
Print('break')
Break
End
End
--删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
SET @TId = cast(SUBSTRING(@DelCharIndexID, @PointerPrev, LEN(@DelCharIndexID) - @PointerPrev + 1) As NVARCHAR(50))
SET @sql = 'Delete From '+ @TableName +' Where '+ @FieldName + ' = '''+ @TID+''''
Exec(@Sql)
Print('======='+@TId+'=======sql'+@Sql)
GO

网上找的批量删除数据库表方法

 代码如下 复制代码

  /*--------------------------------

功能说明:  批量DropTable

使用说明:  使用时一定要小心,因为删选表的where条件是like所有必须保证where

后的like确定与你要删除表名相匹配

---------------------------------*/

--------参数定义-------------------

DECLARE @tableName AS Nvarchar(50) --查询表名条件(小心!,确保like条件是你要Drop的表.TableName尽量精确)

SET @tableName='test' 

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

--SELECT name FROM sys.tables   WHERE name LIKE '%'+@tableName+'%' --查询出要删除表的名称

IF @tableName='' SET @tableName='tableName'--初始化TableName为tableName,防止@tableName为空

DECLARE @tableNames AS Nvarchar(3000)

DECLARE @sql AS Nvarchar(3000)

SET @tableNames=

(SELECT ','+name FROM sys.tables   WHERE name LIKE '%'+@tableName+'%'  FOR XML PATH(''))

SET @tableNames= Stuff(@tableNames,1,1,'')

SET @sql='DROP TABLE '+@tableNames

EXEC(@sql)

时间: 2024-10-24 12:28:48

sql批量删除数据与批量删除数据库表语句的相关文章

SQL Server中数据行批量插入脚本的存储实现_MsSql

无意中看到朋友写的一篇文章"将表里的数据批量生成INSERT语句的存储过程的实现".我仔细看文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数据行稍微大些性能会受影响的.所在公司本来就存在第二个版本的类似实现,但是是基于多行模式的,还是需要手工添加UNAION ALL来满足多行模式的插入.看到这篇博文和基于公司数据行批量脚本的存储的缺点,这次改写和增强该存储的功能.    本存储运行于SQL Server 2005或以上版本,T-SQL代码如下: IF OBJEC

SQL Server中数据行批量插入脚本的存储实现

无意中看到朋友写的一篇文章"将表里的数据批量生成INSERT语句的存储过程的实现".我仔细看文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数据行稍微大些性能会受影响的.所在公司本来就存在第二个版本的类似实现,但是是基于多行模式的,还是需要手工添加UNAION ALL来满足多行模式的插入.看到这篇博文和基于公司数据行批量脚本的存储的缺点,这次改写和增强该存储的功能. 本存储运行于SQL Server 2005或以上版本,T-SQL代码如下: IF OBJECT_I

php批量添加数据与批量更新数据的实现方法_php技巧

本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(

php 批量保存数据与批量更新数据

if ($insert && $insertsql) {php 批量保存数据与批量更新数据   $keystr = $valstr = $tmp = '';   foreach($insertsql as $key => $val) {    if ($val) {     $keystr .= $tmp.$key;     $valstr .= $tmp."'".addslashes($val)."'";     $tmp = ',';   

asp 删除数据并同时删除图片的代码_应用技巧

第一种方法:这个是删除单字段图片的代码.比较简单,因为图片字段已经预先存在数据库表的bookpic的字段里面了. 复制代码 代码如下: <!--#include file="conn.asp"--> <% fileid=trim(request("fileid"))'要删除的记录ID set rs=server.createobject("adodb.recordset") sql="select * from sho

php批量添加数据与批量更新数据方法

批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for 循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count()函数来获取数组中元素的个数. int count(mixed var); 表单提交页面  代码如下 复制代码 <form name="form1" method="post" action="index_ok.php"> &

asp 删除数据并同时删除图片的代码

第一种方法:这个是删除单字段图片的代码.比较简单,因为图片字段已经预先存在数据库表的bookpic的字段里面了. 复制代码 代码如下: <!--#include file="conn.asp"--> <% fileid=trim(request("fileid"))'要删除的记录ID set rs=server.createobject("adodb.recordset") sql="select * from sho

帝国cms数据还原后提示数据库表不存在怎么解决?

下午,ytkah用帝国cms在wamp调试时发现了一个问题,还原备份好的数据后更新的页面提示数据库表不存在,查看了phpmyadmin分类的数据库表实际上是存在的,这个是怎么回事呢?重新搭建一个新站点还是这种情况. 在热心网友的帮助下总算知道原因了,原来是文件权限没设置好,e/data目录下文件权限要设置为读写权限,然后再更新数据库缓存,果然可以了

用SQL批量插入数据的存储过程_数据库相关

循环插入: 复制代码 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY '000:00:10' /*延迟时间10秒*/ INSERT INTO time_by_day (time_id, the_date, the_year, month_of_year, quarter, day_of_month) SELECT TOP 1