Ich bin ziemlich rostig mit meinem SQL-Spiel. Ich habe einen Code (siehe unten), der eine Datenbankinstanz überprüft (instance001, instance002, usw.) und dann nach den LAST_READ- und LAST_WRITE-Feldern sucht, die null sind, sowie bei der letzten Zurücksetzung. Nichts zu übertrieben.SQL Server: Wo und Wie Statements
Das Problem, das ich habe, ist, wie Sie dies über mehrere Instanzen hinweg ausführen. Du wirst sehen, ich habe einen Abschnitt auskommentiert. Wenn ich die entsprechende OR-Anweisung (or inst_name like 'instance002'
) hinzufüge, erhält es nicht die Ergebnisse, nach denen ich gesucht habe.
Beispiel: instance001 ergibt 1 Datensätze. instance002 ergibt 60. Wenn ich where inst_name like 'instance001' or inst_name like 'instance002'
verwende, erhalte ich 210 Datensätze. Wie würde ich die SQL manipulieren, um 61 zur Verfügung zu stellen?
declare @timeString nvarchar(50) = CONVERT(varchar(24), GETDATE(), 120)
select DB_NAME, INST_NAME, MIN([LAST_SRVR_RST]) AS MIN_SRVR_RST, LAST_READ, LAST_WRITE, [email protected]
from CMS_DB_LAST_READ_WRITE -- Targeted DB with data.
where inst_name -- Targeted instance(s)
like 'instance001'
/*
like 'instance002'
like 'instance003'
like 'instance004'
*/
and LAST_READ is null -- Both read and write must be null
and LAST_WRITE is null -- to show no activity.
--and [LAST_SRVR_RST] = MIN([LAST_SRVR_RST])
group by DB_NAME, INST_NAME, LAST_SRVR_RST, LAST_READ, LAST_WRITE
noch alles nimmt in, aber mit dem zwickt ich bisher gemacht es scheint genau so zu funktionieren, wie es sollte! Ich werde morgen alles nochmal überprüfen müssen, aber das Ergebnis der Abfrage sieht momentan GROSS aus! Als Antwort markiert. :) – Erik