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
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;
|
|
}
|
|
}
|
|
}
|
|
}
|