You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.8 KiB

namespace OpenDBDiff.SqlServer.Schema.Model
{
public class DatabaseInfo
{
public enum SQLServerVersion
{
SQLServer2000,
SQLServer2005,
SQLServer2008,
SQLServer2008R2,
// Azure will be reporting v11 instead of v10.25 soon...
// http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/ad7aae98-26ac-4979-848d-517a86c3fa5c/
SQLServerAzure10, /*Azure*/
SQLServer2012,
SQLServer2014,
SQLServer2016,
SQLServer2017,
}
public enum SQLServerEdition
{
Personal = 1,
Standard = 2,
Enterprise = 3,
Express = 4,
Azure = 5
}
private float versionNumber;
public DatabaseInfo()
{
Version = SQLServerVersion.SQLServer2005;
}
public string Server { get; set; }
public string Database { get; set; }
public SQLServerVersion Version { get; private set; }
public SQLServerEdition Edition { get; private set; }
public string Collation { get; set; }
public bool HasFullTextEnabled { get; set; }
public string ChangeTrackingPeriodUnitsDesc { get; set; }
public int ChangeTrackingPeriodUnits { get; set; }
public int ChangeTrackingRetentionPeriod { get; set; }
public bool IsChangeTrackingAutoCleanup { get; set; }
public bool HasChangeTracking { get; set; }
public float VersionNumber
{
get { return versionNumber; }
set
{
versionNumber = value;
SQLServerVersion version = this.Version;
// https://buildnumbers.wordpress.com/sqlserver/
if (versionNumber >= 8) version = SQLServerVersion.SQLServer2000;
if (versionNumber >= 9) version = SQLServerVersion.SQLServer2005;
if (versionNumber >= 10) version = SQLServerVersion.SQLServer2008;
if (versionNumber >= 10.25) version = SQLServerVersion.SQLServerAzure10;
if (versionNumber >= 10.5) version = SQLServerVersion.SQLServer2008R2;
if (versionNumber >= 11.0) version = SQLServerVersion.SQLServer2012;
if (versionNumber >= 12.0) version = SQLServerVersion.SQLServer2014;
if (versionNumber >= 13.0) version = SQLServerVersion.SQLServer2016;
if (versionNumber >= 14.0) version = SQLServerVersion.SQLServer2017;
this.Version = version;
}
}
public void SetEdition(SQLServerEdition edition)
{
this.Edition = edition;
if (edition == SQLServerEdition.Azure)
{
this.Version = SQLServerVersion.SQLServerAzure10;
}
}
}
}