我想删除所有来自此查询的表。可以有多个表。
此查询将返回舞台数据库的表名。
SELECT name FROM sys.objects WHERE create_date < GETDATE()-7
如何在不使用游标的情况下删除表?
答案 0 :(得分:0)
假设您想要获取7天或更长时间的所有表的名称..
SELECT name FROM sys.tables WHERE DATEDIFF(day,create_date,GETDATE()) >= 7
对于你应该使用sys.tables 的对象,sys.objects不适用于表
和无光标删除..
自行承担使用风险
BEGIN TRAN
DECLARE @DropTables NVARCHAR(MAX)
SET @DropTables = ''
SELECT @DropTables = @DropTables +
'DROP TABLE '+name+CHAR(10)
FROM sys.tables
WHERE DATEDIFF(day,create_date,GETDATE()) >= 7
EXEC(@DropTables)
ROLLBACK