diff --git a/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs b/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
index 2258268631..a459b06861 100644
--- a/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
+++ b/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
@@ -1,189 +1,188 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Umbraco.Core.Persistence.DatabaseModelDefinitions;
-
-namespace Umbraco.Core.Persistence.SqlSyntax
-{
- ///
- /// Represents an SqlSyntaxProvider for Sql Server.
- ///
- [SqlSyntaxProvider(Constants.DatabaseProviders.SqlServer)]
- public class SqlServerSyntaxProvider : MicrosoftSqlSyntaxProviderBase
- {
- ///
- /// Gets/sets the version of the current SQL server instance
- ///
- internal SqlServerVersionName GetVersionName(Database database)
- {
- if (_versionName.HasValue)
- return _versionName.Value;
-
- try
- {
- var version = database.ExecuteScalar("SELECT SERVERPROPERTY('productversion')");
- var firstPart = version.Split('.')[0];
- switch (firstPart)
- {
- case "13":
- _versionName = SqlServerVersionName.V2016;
- break;
- case "12":
- _versionName = SqlServerVersionName.V2014;
- break;
- case "11":
- _versionName = SqlServerVersionName.V2012;
- break;
- case "10":
- _versionName = SqlServerVersionName.V2008;
- break;
- case "9":
- _versionName = SqlServerVersionName.V2005;
- break;
- case "8":
- _versionName = SqlServerVersionName.V2000;
- break;
- case "7":
- _versionName = SqlServerVersionName.V7;
- break;
- default:
- _versionName = SqlServerVersionName.Other;
- break;
- }
- }
- catch (Exception)
- {
- _versionName = SqlServerVersionName.Invalid;
- }
-
- return _versionName.Value;
- }
-
- private SqlServerVersionName? _versionName;
-
- ///
- /// SQL Server stores default values assigned to columns as constraints, it also stores them with named values, this is the only
- /// server type that does this, therefore this method doesn't exist on any other syntax provider
- ///
- ///
- public IEnumerable> GetDefaultConstraintsPerColumn(Database db)
- {
- var items = db.Fetch("SELECT TableName = t.Name,ColumnName = c.Name,dc.Name,dc.[Definition] FROM sys.tables t INNER JOIN sys.default_constraints dc ON t.object_id = dc.parent_object_id INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND c.column_id = dc.parent_column_id");
- return items.Select(x => new Tuple(x.TableName, x.ColumnName, x.Name, x.Definition));
- }
-
- public override IEnumerable GetTablesInSchema(Database db)
- {
- var items = db.Fetch("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES");
- return items.Select(x => x.TABLE_NAME).Cast().ToList();
- }
-
- public override IEnumerable GetColumnsInSchema(Database db)
- {
- var items = db.Fetch("SELECT TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS");
- return
- items.Select(
- item =>
- new ColumnInfo(item.TABLE_NAME, item.COLUMN_NAME, item.ORDINAL_POSITION, item.COLUMN_DEFAULT,
- item.IS_NULLABLE, item.DATA_TYPE)).ToList();
- }
-
- ///
- public override IEnumerable> GetConstraintsPerTable(Database db)
- {
- var items =
- db.Fetch(
- "SELECT TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE");
- return items.Select(item => new Tuple(item.TABLE_NAME, item.CONSTRAINT_NAME)).ToList();
- }
-
- ///
- public override IEnumerable> GetConstraintsPerColumn(Database db)
- {
- var items =
- db.Fetch(
- "SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE");
- return items.Select(item => new Tuple(item.TABLE_NAME, item.COLUMN_NAME, item.CONSTRAINT_NAME)).ToList();
- }
-
- ///
- public override IEnumerable> GetDefinedIndexes(Database db)
- {
- var items =
- db.Fetch(
- @"select T.name as TABLE_NAME, I.name as INDEX_NAME, AC.Name as COLUMN_NAME,
-CASE WHEN I.is_unique_constraint = 1 OR I.is_unique = 1 THEN 1 ELSE 0 END AS [UNIQUE]
-from sys.tables as T inner join sys.indexes as I on T.[object_id] = I.[object_id]
- inner join sys.index_columns as IC on IC.[object_id] = I.[object_id] and IC.[index_id] = I.[index_id]
- inner join sys.all_columns as AC on IC.[object_id] = AC.[object_id] and IC.[column_id] = AC.[column_id]
-WHERE I.is_primary_key = 0
-order by T.name, I.name");
- return items.Select(item => new Tuple(item.TABLE_NAME, item.INDEX_NAME, item.COLUMN_NAME,
- item.UNIQUE == 1)).ToList();
-
- }
-
- public override bool DoesTableExist(Database db, string tableName)
- {
- var result =
- db.ExecuteScalar("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @TableName",
- new { TableName = tableName });
-
- return result > 0;
- }
-
- public override string FormatColumnRename(string tableName, string oldName, string newName)
- {
- return string.Format(RenameColumn, tableName, oldName, newName);
- }
-
- public override string FormatTableRename(string oldName, string newName)
- {
- return string.Format(RenameTable, oldName, newName);
- }
-
- protected override string FormatIdentity(ColumnDefinition column)
- {
- return column.IsIdentity ? GetIdentityString(column) : string.Empty;
- }
-
- public override Sql SelectTop(Sql sql, int top)
- {
- return new Sql(sql.SQL.Insert(sql.SQL.IndexOf(' '), " TOP " + top), sql.Arguments);
- }
-
- private static string GetIdentityString(ColumnDefinition column)
- {
- return "IDENTITY(1,1)";
- }
-
- protected override string FormatSystemMethods(SystemMethods systemMethod)
- {
- switch (systemMethod)
- {
- case SystemMethods.NewGuid:
- return "NEWID()";
- case SystemMethods.CurrentDateTime:
- return "GETDATE()";
- //case SystemMethods.NewSequentialId:
- // return "NEWSEQUENTIALID()";
- //case SystemMethods.CurrentUTCDateTime:
- // return "GETUTCDATE()";
- }
-
- return null;
- }
-
- public override string DeleteDefaultConstraint
- {
- get { return "ALTER TABLE [{0}] DROP CONSTRAINT [DF_{0}_{1}]"; }
- }
-
-
- public override string DropIndex { get { return "DROP INDEX {0} ON {1}"; } }
-
- public override string RenameColumn { get { return "sp_rename '{0}.{1}', '{2}', 'COLUMN'"; } }
-
-
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Umbraco.Core.Persistence.DatabaseModelDefinitions;
+
+namespace Umbraco.Core.Persistence.SqlSyntax
+{
+ ///
+ /// Represents an SqlSyntaxProvider for Sql Server.
+ ///
+ [SqlSyntaxProvider(Constants.DatabaseProviders.SqlServer)]
+ public class SqlServerSyntaxProvider : MicrosoftSqlSyntaxProviderBase
+ {
+ ///
+ /// Gets/sets the version of the current SQL server instance
+ ///
+ internal SqlServerVersionName GetVersionName(Database database)
+ {
+ if (_versionName.HasValue)
+ return _versionName.Value;
+
+ try
+ {
+ var version = database.ExecuteScalar("SELECT SERVERPROPERTY('productversion')");
+ var firstPart = version.Split('.')[0];
+ switch (firstPart)
+ {
+ case "13":
+ _versionName = SqlServerVersionName.V2016;
+ break;
+ case "12":
+ _versionName = SqlServerVersionName.V2014;
+ break;
+ case "11":
+ _versionName = SqlServerVersionName.V2012;
+ break;
+ case "10":
+ _versionName = SqlServerVersionName.V2008;
+ break;
+ case "9":
+ _versionName = SqlServerVersionName.V2005;
+ break;
+ case "8":
+ _versionName = SqlServerVersionName.V2000;
+ break;
+ case "7":
+ _versionName = SqlServerVersionName.V7;
+ break;
+ default:
+ _versionName = SqlServerVersionName.Other;
+ break;
+ }
+ }
+ catch (Exception)
+ {
+ _versionName = SqlServerVersionName.Invalid;
+ }
+
+ return _versionName.Value;
+ }
+
+ private SqlServerVersionName? _versionName;
+
+ ///
+ /// SQL Server stores default values assigned to columns as constraints, it also stores them with named values, this is the only
+ /// server type that does this, therefore this method doesn't exist on any other syntax provider
+ ///
+ ///
+ public IEnumerable> GetDefaultConstraintsPerColumn(Database db)
+ {
+ var items = db.Fetch("SELECT TableName = t.Name, ColumnName = c.Name, dc.Name, dc.[Definition] FROM sys.tables t INNER JOIN sys.default_constraints dc ON t.object_id = dc.parent_object_id INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND c.column_id = dc.parent_column_id INNER JOIN sys.schemas as s on t.[schema_id] = s.[schema_id] WHERE s.name = (SELECT SCHEMA_NAME())");
+ return items.Select(x => new Tuple(x.TableName, x.ColumnName, x.Name, x.Definition));
+ }
+
+ public override IEnumerable GetTablesInSchema(Database db)
+ {
+ var items = db.Fetch("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = (SELECT SCHEMA_NAME())");
+ return items.Select(x => x.TABLE_NAME).Cast().ToList();
+ }
+
+ public override IEnumerable GetColumnsInSchema(Database db)
+ {
+ var items = db.Fetch("SELECT TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = (SELECT SCHEMA_NAME())");
+ return
+ items.Select(
+ item =>
+ new ColumnInfo(item.TABLE_NAME, item.COLUMN_NAME, item.ORDINAL_POSITION, item.COLUMN_DEFAULT,
+ item.IS_NULLABLE, item.DATA_TYPE)).ToList();
+ }
+
+ ///
+ public override IEnumerable> GetConstraintsPerTable(Database db)
+ {
+ var items =
+ db.Fetch(
+ "SELECT TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE WHERE TABLE_SCHEMA = (SELECT SCHEMA_NAME())");
+ return items.Select(item => new Tuple(item.TABLE_NAME, item.CONSTRAINT_NAME)).ToList();
+ }
+
+ ///
+ public override IEnumerable> GetConstraintsPerColumn(Database db)
+ {
+ var items =
+ db.Fetch(
+ "SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_SCHEMA = (SELECT SCHEMA_NAME())");
+ return items.Select(item => new Tuple(item.TABLE_NAME, item.COLUMN_NAME, item.CONSTRAINT_NAME)).ToList();
+ }
+
+ ///
+ public override IEnumerable> GetDefinedIndexes(Database db)
+ {
+ var items =
+ db.Fetch(
+ @"select T.name as TABLE_NAME, I.name as INDEX_NAME, AC.Name as COLUMN_NAME,
+CASE WHEN I.is_unique_constraint = 1 OR I.is_unique = 1 THEN 1 ELSE 0 END AS [UNIQUE]
+from sys.tables as T inner join sys.indexes as I on T.[object_id] = I.[object_id]
+ inner join sys.index_columns as IC on IC.[object_id] = I.[object_id] and IC.[index_id] = I.[index_id]
+ inner join sys.all_columns as AC on IC.[object_id] = AC.[object_id] and IC.[column_id] = AC.[column_id]
+ inner join sys.schemas as S on T.[schema_id] = S.[schema_id]
+WHERE S.name = (SELECT SCHEMA_NAME()) AND I.is_primary_key = 0
+order by T.name, I.name");
+ return items.Select(item => new Tuple(item.TABLE_NAME, item.INDEX_NAME, item.COLUMN_NAME,
+ item.UNIQUE == 1)).ToList();
+
+ }
+
+ public override bool DoesTableExist(Database db, string tableName)
+ {
+ var result =
+ db.ExecuteScalar("SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @TableName AND TABLE_SCHEMA = (SELECT SCHEMA_NAME())",
+ new { TableName = tableName });
+
+ return result > 0;
+ }
+
+ public override string FormatColumnRename(string tableName, string oldName, string newName)
+ {
+ return string.Format(RenameColumn, tableName, oldName, newName);
+ }
+
+ public override string FormatTableRename(string oldName, string newName)
+ {
+ return string.Format(RenameTable, oldName, newName);
+ }
+
+ protected override string FormatIdentity(ColumnDefinition column)
+ {
+ return column.IsIdentity ? GetIdentityString(column) : string.Empty;
+ }
+
+ public override Sql SelectTop(Sql sql, int top)
+ {
+ return new Sql(sql.SQL.Insert(sql.SQL.IndexOf(' '), " TOP " + top), sql.Arguments);
+ }
+
+ private static string GetIdentityString(ColumnDefinition column)
+ {
+ return "IDENTITY(1,1)";
+ }
+
+ protected override string FormatSystemMethods(SystemMethods systemMethod)
+ {
+ switch (systemMethod)
+ {
+ case SystemMethods.NewGuid:
+ return "NEWID()";
+ case SystemMethods.CurrentDateTime:
+ return "GETDATE()";
+ //case SystemMethods.NewSequentialId:
+ // return "NEWSEQUENTIALID()";
+ //case SystemMethods.CurrentUTCDateTime:
+ // return "GETUTCDATE()";
+ }
+
+ return null;
+ }
+
+ public override string DeleteDefaultConstraint
+ {
+ get { return "ALTER TABLE [{0}] DROP CONSTRAINT [DF_{0}_{1}]"; }
+ }
+
+
+ public override string DropIndex { get { return "DROP INDEX {0} ON {1}"; } }
+
+ public override string RenameColumn { get { return "sp_rename '{0}.{1}', '{2}', 'COLUMN'"; } }
+ }
+}