Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string query = @"declare @DatabaseName sysname = '" + DBName + @"'
- declare @BackupChain table (physical_device_name nvarchar(260), type char(1), backup_finish_date datetime)
- declare @LastFull datetime, @LastDiff datetime, @LogsAfter datetime
- insert into @BackupChain
- select top 1 physical_device_name, type, backup_finish_date
- from msdb.dbo.backupset b
- join msdb.dbo.backupmediafamily mf on b.media_set_id = mf.media_set_id
- where b.is_copy_only = 0
- and b.type = 'D'
- and b.database_name = @DatabaseName
- order by backup_finish_date desc;
- select top 1 @LastFull = backup_finish_date from @BackupChain where type = 'D';
- if @LastFull is not null
- begin
- insert into @BackupChain
- select top 1 physical_device_name, type, backup_finish_date
- from msdb.dbo.backupset b
- join msdb.dbo.backupmediafamily mf on b.media_set_id = mf.media_set_id
- where b.is_copy_only = 0
- and b.type = 'I'
- and b.backup_finish_date > @LastFull
- and b.database_name = @DatabaseName
- order by backup_finish_date desc
- select @LastDiff = backup_finish_date from @BackupChain where type = 'I';
- set @LogsAfter = isnull(@LastDiff, @LastFull)
- insert into @BackupChain
- select physical_device_name, type, backup_finish_date
- from msdb.dbo.backupset b
- join msdb.dbo.backupmediafamily mf on b.media_set_id = mf.media_set_id
- where b.is_copy_only = 0
- and b.type = 'L'
- and b.backup_finish_date > @LogsAfter
- and b.database_name = @DatabaseName
- order by backup_finish_date asc
- select * from @BackupChain
- order by backup_finish_date
- end;";
Advertisement
Add Comment
Please, Sign In to add comment