Sql Server 批量删除固定格式的表

需求:批量删除 tblLogoutLog_20210511至tblLogoutLog_20210808的表
语句:

USE DFUserLog

DECLARE @nBeginDate AS INT = 20210511;
DECLARE @nEndDate AS INT = 20210808;
DECLARE @year AS INT = 0;
DECLARE @month AS INT = 0;
DECLARE @day AS INT = 0;
DECLARE @temp AS INT = 0;

DECLARE @tableName AS NVARCHAR(100) = N'';
DECLARE @sql AS NVARCHAR(1024) = N'';

DECLARE @nIndex AS INT = 0;
SET @nIndex = @nBeginDate;
WHILE @nIndex <= @nEndDate
BEGIN
	SET @tableName = N'tblLogoutLog_' + CONVERT(NVARCHAR(10), @nIndex);
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(@tableName) AND type in (N'U'))
	BEGIN
		SET @sql = N'DROP TABLE ' + @tableName;
		EXEC(@sql);
	END
		

	SET @temp = @nIndex;
	SET @year = @temp / 10000;
	SET @temp = @temp - @year * 10000;
	SET @month = @temp / 100;
	SET @day = @temp - @month * 100;
	SET @day = @day + 1;
	IF @day > 31
	BEGIN 
		SET @day = 1;
		SET @month = @month + 1;
	END
	IF @month > 12
	BEGIN 
		SET @month = 1;
		SET @year = @year + 1;
	END
	
	SET @nIndex = @year * 10000 + @month * 100 + @day;
END
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值