-- =============================================
-- 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

最新文章

  1. 校际联合Contest
  2. C# 点绕某点旋转某角度
  3. Android Launcher分析和修改9——Launcher启动APP流程
  4. Java Hour 45 Hibernate ( 2 )
  5. 浅谈如何使用代码为MP3文件写入ID3Tags
  6. Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感
  7. asp.net缓存(二)
  8. uvalive 2088 - Entropy(huffman编码)
  9. CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释
  10. Git详解之九:Git内部原理
  11. CImage 对话框初始化时候显示透明 PNG
  12. 第31月第19天 NV12
  13. linux,pthread(转)
  14. scrapy框架修改单个爬虫的配置,包括下载延时,下载超时设置
  15. centos查看自启动服务
  16. .Net #if DEBUG调试模式代码使用
  17. https遇到自签名证书/信任证书
  18. make -j8以及linux下查看cpu的核数
  19. 20170728 Celery项目 后台处理SQL SERVER的一个异常
  20. Understanding the STM32F0&#39;s GPIO

热门文章

  1. 6.15-初识JSP、javaweb
  2. PHP使用FPDF pdf添加水印中文乱码问题 pdf合并版本问题
  3. Introducing Deep Reinforcement
  4. solr入门之权重排序方法初探之使用edismax改变权重
  5. linux更换shell外壳zsh
  6. Spring MVC 学习笔记1 - First Helloworld by Eclipse【&amp; - java web 开发Tips集锦】
  7. create a bootable USB stick on Ubuntu
  8. myeclipse2016-ci破解疑难杂症问题整理
  9. select(下拉标签和textarea(文本框)
  10. uiview animation 卡一下