SQL Server 使用脚本自动删除数据

xzv2uavs  于 2023-01-25  发布在  其他
关注(0)|答案(1)|浏览(214)

我们有一个包含2000个表的数据库,其中没有任何行。
有时,会创建包含行的新表,然后再次对其进行清理,但这些表仍然存在。
我需要一个脚本来删除或删除当前数据库中超过某个日期的表。
我们有一个脚本,这是工作,但突然停止,不知何故被删除。
在如何创建可以作为策略运行的新脚本方面有任何帮助吗?
我们使用的是SQL Server 2016。
谢谢
我们尝试重新创建脚本,但失败。
试图恢复我们在SQL上的脚本,但它不见了。检查了几个链接,但只找到了删除记录而不是表的信息。

k7fdbhmy

k7fdbhmy1#

您可以使用sys.tables获取所有表并检查修改日期,然后创建一个动态sql来执行:

DECLARE @sql nvarchar(max) = N'';

SELECT @sql = (select N'drop table ' + QUOTENAME(t.name) + N';'
FROM sys.tables AS t
WHERE modify_date > limitDateToDelete AND type = 'U' -- Change your date or use parameter
order by object_id 
 FOR XML PATH(''), TYPE
).value('.','nvarchar(max)')

print @sql ;
-- caution below will ACTUALLY drop the tables.
-- review the output and then uncomment below line
EXEC sys.sp_executesql @sql;

相关问题