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

Azn*_*l92 5 t-sql sql-server

我想通过比较指定表中的日期列来删除任何超过 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)
Run Code Online (Sandbox Code Playgroud)

小智 2

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 [?];'
Run Code Online (Sandbox Code Playgroud)