私はちょうどこの周りに私の頭を得ることができません。差分かフルかを問わず、データベースごとに最新のバックアップのみを表示するには、以下のクエリが必要です。グループ内の1つの行(最新)を表示
私の場合、クエリは特定のデータベースの2つの行をレンダリングします.1つは最新の差分と1つは最新の完全なものです。
ありがとうございます。
SELECT A.server_name as Instance, B.name as Database_Name,
ISNULL(Convert(char(19), max(backup_finish_date), 100), 'NEVER') as Backup_Date, case when type='D' then 'FULL' when type='I' then 'DIFFERENTIAL'when type='L' then 'LOG'end as Backup_Type,
'Succeeded' as Status
FROM master.dbo.sysdatabases B LEFT OUTER JOIN
msdb.dbo.backupset A
ON A.database_name = B.name
where B.name not in ('master', 'model', 'msdb', 'tempdb') and
a.machine_name IS NOT NULL and type in ('D', 'I')
GROUP BY B.name, A.machine_name, A.server_name, A.type
ORDER BY B.name, Backup_Date desc, A.type;
選択トップ(1)... – Serg
あなたがa.type'で 'グループを追加しているので、それがいずれかが表示されます。各タイプの行。 –
Nenand、GROUP BYにa.typeがなければなりません。そうでないと「列msdb.dbo.backupsetは集計関数またはGROUP BYに含まれていないため選択リストに無効です句"。しかし、FULLの行が1行、DIFFERENTIALの行が1行あるのがなぜ分かりましたか? – soti84