龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Sql Server开发 >

sql批量删除数据的几种方法介绍

时间:2013-01-03 18:08来源:未知 作者:admin 点击:
分享到:
sql批量删除数据的几种方法介绍 a是A表的一列,存在a=1的数据 1.Delete from A where exists (Select 1 where a=1) 2.Delete from A where exists (Select 1 from A where a=1) 结果 1:只删除a=1一条数据,2:删

sql批量删除数据的几种方法介绍
a是A表的一列,存在a=1的数据

1.Delete from A where exists (Select 1 where a=1) 

2.Delete from A where exists (Select 1 from A where a=1)

结果 1:只删除a=1一条数据,2:删除所有数据。


,里面的数据是yyyy.mm.dd格式的,另外由表单提交要删除的某一年的数据,该表单名为Year,我现在想通过一个SQL语句批量删除某一年的所有记录,比如删除所有该日期字段包含2005年的所有记录


delete from year where year(d_date)=2005


存储过程操作

-- 测试数据
create table dbo.temptb_1 (id int);
create table guest.temptb_2 (id int);

-- 打开隐式事务
SET IMPLICIT_TRANSACTIONS ON
-- 执行动态删除
--定义一个变量
declare @sql varchar(max);
set @sql='';
select @sql=@sql+'drop table '+
--获取表名称,形如:dbo.temptb_***,escape ''表示''为转义符号
QUOTENAME(SCHEMA_NAME([schema_id]))+'.'+QUOTENAME([name])+';'
from sys.tables where where is_ms_shipped =0 and [name] like 'temptb_%' escape ''
-- select @sql;
EXEC(@sql);
-- 检查删除是否正确
select * from sys.tables
-- 正确,则提交事务,确认删除
commit tran
-- 不正确,则回滚事务,取消删除
rollback tran
-- 关闭隐式事务
SET IMPLICIT_TRANSACTIONS OFF


精彩图集

赞助商链接