ich den Code unten bin mit 3 Spalten ziehen:T-SQL - Get runduration von einem Wiederherstellungsauftrag
- Server Name
- Datenbankname
- Datum/Zeit begann Wiederherstellung
Code:
WITH LastRestores
AS
(
SELECT
@@SERVERNAME AS [ServerName],
[d].[name] AS [DatabaseName],
CONVERT(VARCHAR, r.restore_date, 100) AS [RestoreDateTime],
RowNum = ROW_NUMBER() OVER (PARTITION BY d.NAME
ORDER BY r.[restore_date] DESC)
FROM
master.sys.databases d
LEFT OUTER JOIN
msdb.dbo.[restorehistory] r ON r.[destination_database_name] = d.NAME
)
SELECT
[ServerName], [DatabaseName], [RestoreDateTime]
FROM
[LastRestores]
WHERE
[RowNum] = 1
AND DatabaseName NOT IN ('master', 'model', 'msdb', 'tempdb')
AND CONVERT(VARCHAR(12), [RestoreDateTime]) = CONVERT(VARCHAR(12), GETDATE())
Was ich tun möchte, ist die 0 erhalten, die in der Tabelle msdb..sysjobhistory
gebunden ist. Ich kann nicht für mein Leben sehen, wie ich diesen Tisch mit meinem obigen Code binden kann. Ich bin mir sicher, dass es einen runden Weg gibt, um die Informationen zu bekommen, nach denen ich suche.
Irgendwelche Vorschläge?
Danke!
Endlich zur Verwendung dieses Codes & haben 1 Frage, Sean. Das funktioniert so, wie ich es will! Vielen Dank! Ich habe mich jedoch dafür entschieden, das "LogDate" in ein "Mon, day year time" Format zu bringen, ähnlich wie das Feld "StartDateTime" formatiert ist. Irgendwelche Vorschläge? Danke! –
Ich habe eine formatierte Datumsspalte in der Ergebnismenge hinzugefügt. –
Danke, Sean. Was komisch ist, ich dachte, ich hätte genau das getan, was du getan hast, um das Datum zu formatieren. Ich war auf dem richtigen Weg, habe aber aus irgendeinem Grund ein falsches Datum für das "FormattedLogDate" erhalten. Dies traf den Nagel auf den Kopf! Vorwärts gehen. –