/ / DROP Datenbank mit einer WHERE-Klausel - TSQL - sql-server, tsql

DROP-Datenbank mit einer WHERE-Klausel - TSQL - sql-server, tsql

Ich möchte alle Entwicklungsdatenbanken löschen, die älter als 15 Tage sind, indem Sie die Datumsspalte in einer angegebenen Tabelle vergleichen.

Gibt es eine Möglichkeit, eine DROP-Datenbankabfrage mit einer WHERE-Klausel zu schreiben, oder muss ich eine dynamische SQL ausführen?

Unten ist meine SQL-Abfrage:

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

Antworten:

2 für die Antwort № 1

sp_MSforeachdb führt für jede Datenbank eine Anweisung aus.

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

0 für die Antwort № 2

Probieren Sie diesen Code aus:

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