SQL存储过程将符合条件的大量记录批量删除脚本
-- =============================================
-- Author: James Fu
-- Create date: 2015/10/27
-- Description: v0.1 利用批量的方式删除符合条件的数据
-- =============================================
CREATE PROCEDURE [dbo].[sp_LargeDelete]
@TableName sysname,
@MaxRows int = 100000,
@Filter nvarchar(512) = ''
AS
BEGIN
SET NOCOUNT ON; DECLARE @SQL nvarchar(512) BEGIN TRY
IF ( @Filter = '' OR @Filter is null )
BEGIN
SET @SQL = 'TRUNCATE TABLE '+@TableName ;
exec sp_executesql @SQL
END
ELSE
BEGIN
DECLARE @Count INT = -1
SET @SQL = 'DELETE TOP ('+CAST(@MaxRows AS varchar) + ') FROM ' + @TableName + ' WHERE ' + @Filter + ' OPTION ( MAXDOP 1 )' ;
WHILE @Count <> 0
BEGIN
BEGIN TRAN
exec sp_executesql @SQL
SET @Count = @@ROWCOUNT
COMMIT
END
END
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
END
SQL存储过程将符合条件的大量记录批量删除脚本的更多相关文章
- 在SQL存储过程中给条件变量加上单引号
在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) ), )), )+ ...
- Oracle根据符合条件的数据循环批量更新
--批量对符合条件的表记录进行更新 --aa代表查询出的符合条件数据的别名 --aa后的表示需要符合的条件 --loop后开始写更新操作 begin for aa in (select a.objec ...
- 根据某条件给GridView符合条件的值画上删除线
如博文标题,根据某些条件对GridView控件中,对符合条件的值画上删除线效果.实现这些要求,只人捕获到哪些符合要求的数据即可.GridView控件是在TemplateField模版显示数据,Insu ...
- SQL语句中过滤条件放在on、where、having的区别和联系
摘要:SQL语句中,过滤条件放在不同筛选器on.where和having的区别和联系. 综述 在<SQL语句中过滤条件放在on和where子句中的区别和联系>中,介绍了多表关联SQL语 ...
- 【转载】C#使用FirstOrDefault方法快速查找List集合中符合条件的第一个实体
在C#的List集合的操作中,有时候我们需要根据相关条件快速从List集合中获取到第一个符合条件的实体对象,例如有个全校班级的List集合,我们需要根据班级代码快速从List集合中查找出班级信息.可以 ...
- 集合赋值及for循环删除符合条件的元素
一.Java语言中ArrayList对象能直接赋值给另一个ArrayList对象吗? https://zhidao.baidu.com/question/399214655.html ArrayLis ...
- 在SSMS里批量删除表、存储过程等各种对象
在SSMS里批量删除表.存储过程等各种对象 以前想找批量删除表或者存储过程的方法,原来SSMS的GUI界面也可以完成 请看下图,因为这次出差的时候要删除所有的存储过程,然后重建这些存储过程 而表.函数 ...
- mysql随机查询符合条件的几条记录
随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数 ...
- SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union
PS:概要.背景.结语都是日常“装X”,可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单从SQL性能来讲,从 ...
随机推荐
- 3D Render
记录最近遇到的问题: 1:崩溃问题 由于高频率获取DC异常导致. void D3D11Texture2D::Copy2Window(void* srcdc, uint32_t left, uint32 ...
- selenium自动化测试通过localstorage绕过登陆
引言: 做自动化测试,尤其是通过page object模式做UI自动化测试,登陆是个很麻烦的事情,比如你想对某个页面进行测试,一般直接链接到那个页面是不可能的,总是需要先登陆,然后刷新页面才能到想要的 ...
- uva-167-枚举
题意:八皇后问题,要求选取的总和最大 #include<stdio.h> #include<iostream> #include<sstream> #include ...
- 0_Simple__MultiGPU
使用多台 GPU 进行计算 ▶ 源代码.使用不同的流来控制不同 GPU 上的运算任务. #include <stdio.h> #include <timer.h> #inclu ...
- smfony设置量表之间的关系
设置量表之间的关系 验证是否ok 查看我们定义是否有问题 数据库操作 http://www.2cto.com/database/201504/387197.html 设置时间段数据库自动插入时间 不 ...
- Gson进行json字符串和对象之间的转化
Gson可以实现对象与json字符串之间的转化,以下是在Android中的示例代码. Gson主页:https://code.google.com/p/google-gson/ public clas ...
- MVC 4 Razor Design Sample Demo Project
This is a demo project in MCV 4 razor design which encompases the general design of MVC pattern. The ...
- HTML5 Canvas ( 文字的书写和样式控制 ) font, fillText, strokeText
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue基础——Class与Style绑定
Class与Style绑定 操作元素的class列表和内联样式是数据绑定的一个常见的需求. 因为它们都是属性,所以我们可以用v-bind来处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼 ...
- eclipse从svn导入maven项目变成普通项目解决办法
右击项目-->configure-->Convert to Maven Project