SQL存储过程将符合条件的大量记录批量删除脚本
2024-09-01 01:26:57
-- =============================================
-- 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
最新文章
- 校际联合Contest
- C# 点绕某点旋转某角度
- Android Launcher分析和修改9——Launcher启动APP流程
- Java Hour 45 Hibernate ( 2 )
- 浅谈如何使用代码为MP3文件写入ID3Tags
- Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感
- asp.net缓存(二)
- uvalive 2088 - Entropy(huffman编码)
- CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
- Git详解之九:Git内部原理
- CImage 对话框初始化时候显示透明 PNG
- 第31月第19天 NV12
- linux,pthread(转)
- scrapy框架修改单个爬虫的配置,包括下载延时,下载超时设置
- centos查看自启动服务
- .Net #if DEBUG调试模式代码使用
- https遇到自签名证书/信任证书
- make -j8以及linux下查看cpu的核数
- 20170728 Celery项目 后台处理SQL SERVER的一个异常
- Understanding the STM32F0&#39;s GPIO
热门文章
- 6.15-初识JSP、javaweb
- PHP使用FPDF pdf添加水印中文乱码问题 pdf合并版本问题
- Introducing Deep Reinforcement
- solr入门之权重排序方法初探之使用edismax改变权重
- linux更换shell外壳zsh
- Spring MVC 学习笔记1 - First Helloworld by Eclipse【&; - java web 开发Tips集锦】
- create a bootable USB stick on Ubuntu
- myeclipse2016-ci破解疑难杂症问题整理
- select(下拉标签和textarea(文本框)
- uiview animation 卡一下