2009-02-05 6 views

답변

1

백업 시간은 msdb.dbo.backupset 테이블에 저장됩니다. 다음은 열린 SQL 연결, databasename 및 전체 백업 또는 모든 백업 중 원하는 것을 나타내는 플래그를 사용하여 마지막 백업 시간을 반환하는 루틴입니다.

이 테이블은 때때로 손질되어 손질 된 경우 백업이 없음을 나타낼 수 있습니다.

//---------------------------------------------------------------------------------------- 
    // Function: GetLastBackupTime 
    // 
    // Input 
    // sqlConnection   - An open SQLConnection to the target SQL Server 
    // DatabaseName   - Name of the database which you are interested in 
    // fullDatabaseBackupOnly - Do you want only the time of the last full backup 
    // 
    // Output 
    // DateTime    - DateTime.MinValue indicates no backup exists 
    //        otherwise it returns the last backup time 
    //--------------------------------------------------------------------------------------- 

DateTime GetLastBackupTime(SqlConnection sqlConnection, 
          string  databaseName, 
          bool   fullDatabaseBackupOnly) 
{ 
    DateTime lastBackupTime = DateTime.MinValue; 

    string sqlTemplate = "SELECT TOP 1 backup_finish_date " + 
         "FROM msdb.dbo.backupset " + 
         "WHERE database_name='{0}' {1} " 
         "ORDER BY backup_finish_date DESC"; 

    string sql = String.Format(sqlTemplate, 
           databaseName, 
           (fullDatabaseBackupOnly) ? " AND type='D' " : ""); 

    // open connection 
    using (SqlCommand cmd = new SqlCommand(sql, sqlConnection, 
    { 
     object retValue = _Command.ExecuteScalar(); 

     if (retValue != null) lastBackupTime = (DateTime)retValue; 
    } 

    return lastBackupTime; 
} 
0

불가능합니다.

관련 문제