sql-server – 带有WHERE子句的DROP数据库 – TSQL

我想通过比较指定表中的日期列来删除任何超过15天的开发数据库.

有没有办法用WHERE子句编写DROP数据库查询,还是我必须做动态SQL?

下面是我的SQL查询:

DROP DATABASE IF EXISTS 
WHERE (SELECT ID FROM master.TableName
        WHERE Date < DATEADD(DAY, -15, GETDATE())
            AND ColumnName1 = 1
            AND ColumnName2 = 0)

最佳答案 sp_MSforeachdb将在每个数据库上运行一个语句.

exec sp_MSforeachdb 'IF EXISTS (SELECT ID FROM [?].dbo.TableName WHERE Date < DATEADD(DAY, -15, GETDATE()) AND ColumnName1 = 1 AND ColumnName2 = 0) DROP DATABASE [?];'
点赞