一聚教程网:一个值得你收藏的教程网站

热门教程

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

时间:2022-06-29 08:31:05 编辑:袖梨 来源:一聚教程网

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

热门栏目