zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Celery的使用
    python中使用redis
    Redis基础
    版本控制器git
    day 74作业
    Djangorestfromwork作业1
    Django rest-framework的jwt认证
    Django --form验证
    cx-oracle-------------------安装
    排序算法
  • 原文地址:https://www.cnblogs.com/x-poior/p/4914504.html
Copyright © 2011-2022 走看看