Sql server 2008 r2 在不使用游标的情况下批量删除表
我想删除来自此查询的所有表。可以有多个表 此查询将返回我的后台数据库的表名Sql server 2008 r2 在不使用游标的情况下批量删除表,sql-server-2008-r2,Sql Server 2008 R2,我想删除来自此查询的所有表。可以有多个表 此查询将返回我的后台数据库的表名 SELECT name FROM sys.objects WHERE create_date < GETDATE()-7 如何在不使用游标的情况下删除表?假设您希望获取所有比游标早7天或更长时间的表的名称 SELECT name FROM sys.tables WHERE DATEDIFF(day,create_date,GETDATE()) >= 7 sys.objects不适用于其表。对于其对象,您应
SELECT name FROM sys.objects WHERE create_date < GETDATE()-7
如何在不使用游标的情况下删除表?假设您希望获取所有比游标早7天或更长时间的表的名称
SELECT name FROM sys.tables WHERE DATEDIFF(day,create_date,GETDATE()) >= 7
sys.objects不适用于其表。对于其对象,您应使用sys.tables
和无光标删除
使用风险自负
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