@@ -150,7 +150,7 @@ public List<BackupMetadata> MostRecentBackupChain()
150150 return backups ;
151151 }
152152
153- public decimal MostRecentFullBackupLsn ( )
153+ public decimal ? MostRecentFullBackupLsn ( )
154154 {
155155 var query = "SELECT MAX(checkpoint_lsn) as most_recent_full_backup_checkpoint_lsn " +
156156 "FROM msdb.dbo.backupset " +
@@ -166,13 +166,12 @@ public decimal MostRecentFullBackupLsn()
166166 cmd . Parameters . Add ( dbName ) ;
167167
168168 using var reader = cmd . ExecuteReader ( ) ;
169- if ( ! reader . Read ( ) )
170- throw new Exception ( "MostRecentFullBackup SQL found no results" ) ;
169+ if ( ! reader . Read ( ) )
170+ return null ;
171171
172172 var lsnValue = reader [ "most_recent_full_backup_checkpoint_lsn" ] ;
173-
174173 if ( lsnValue == DBNull . Value )
175- throw new Exception ( "MostRecentFullBackup SQL found no results" ) ;
174+ return null ;
176175
177176 return ( decimal ) lsnValue ;
178177 }
@@ -181,13 +180,13 @@ public List<BackupMetadata> BackupChainFromLsn(decimal checkpointLsn)
181180 {
182181 var backups = new List < BackupMetadata > ( ) ;
183182
184- var query = "SELECT s.database_name, m.physical_device_name, s.backup_start_date, s.first_lsn, s.last_lsn," +
183+ var query = "SELECT s.database_name, m.physical_device_name, s.backup_start_date, s.first_lsn, s.last_lsn, " +
185184 "s.database_backup_lsn, s.checkpoint_lsn, s.[type] AS backup_type, s.server_name, s.recovery_model " +
186185 "FROM msdb.dbo.backupset s " +
187186 "INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id " +
188187 "WHERE s.database_name = @dbName " +
189188 "AND is_copy_only = 0 " +
190- "AND (s.database_backup_lsn = @lsn OR s.checkpoint_lsn = @lsn)" +
189+ "AND (s.database_backup_lsn = @lsn OR s.checkpoint_lsn = @lsn) " +
191190 "ORDER BY s.backup_start_date DESC, backup_finish_date" ;
192191
193192 using var cmd = _server . SqlConnection . CreateCommand ( ) ;
@@ -300,4 +299,4 @@ private void ThrowIfUnreadyToDrop()
300299 } ) ;
301300 }
302301 }
303- }
302+ }
0 commit comments