星空网 > 软件开发 > 数据库

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) = ''ASBEGIN  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 CATCHEND

 




原标题:SQL存储过程将符合条件的大量记录批量删除脚本

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流