我想通过比较指定表中的日期列来删除任何超过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 [?];'