gpt4 book ai didi

sql - 使用表名删除超过 12 个月的表

转载 作者:行者123 更新时间:2023-12-02 23:42:59 24 4
gpt4 key购买 nike

我希望能够删除超过 12 个月的表。这些表的名称中包含日期(月和年)。例如,TABLE_A_2011_01 的日期为 2011 年 1 月

我想要做的是删除那些日期部分早于 12 个月的表。如果今天的日期是 2011 年 9 月 15 日,我想删除早于 2010 年 9 月 15 日 的所有表。

最佳答案

DECLARE @sql NVARCHAR(MAX) = N'';

;WITH p(o,d) AS
(
SELECT QUOTENAME(SCHEMA_NAME([schema_id])) + '.' + QUOTENAME(name),
d = RIGHT(REPLACE(name, '_', ''), 6) + '01'
FROM sys.tables
WHERE ISDATE(RIGHT(REPLACE(name, '_', ''), 6) + '01') = 1
)
SELECT @sql += 'DROP TABLE ' + o + ';' FROM p
WHERE d < CONVERT(CHAR(8), DATEADD(MONTH, -12, CURRENT_TIMESTAMP), 112);

PRINT @sql;
--EXEC sp_executesql @sql;

关于sql - 使用表名删除超过 12 个月的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com