示例#1
0
        public string GenerateSqlToCreate()
        {
            var sb = new SqlBuilder();

            if (Table != null)
            {
                sb.AppendFormat(
                    _unique ? "CREATE UNIQUE NONCLUSTERED INDEX {0} ON {1}" : "CREATE NONCLUSTERED INDEX {0} ON {1}",
                    DatabaseUtils.EscapeDbObject(Name),
                    DatabaseUtils.GetQualifiedTableName(Table.SchemaName, Table.Name));

                sb.Append("(");

                for (int n = 0; n < Key.Count; ++n)
                {
                    if (n > 0)
                    {
                        sb.Append(",");
                    }

                    var part = Key[n];
                    sb.AppendFormat(
                        " {0} {1}",
                        DatabaseUtils.EscapeDbObject(part.ColumnName),
                        Utils.ColumnOrderToSqlString(part.ColumnOrder));
                }

                sb.Append(");");
            }

            return(sb.ToString());
        }
示例#2
0
        string IDatabaseObject.GenerateSqlToCreate()
        {
            var sb = new SqlBuilder();

            if (Table != null)
            {
                var keyName = Name ?? string.Concat(Prefix, Table.Name.ToUpper(), "_", _primaryKeyTable.Name.ToUpper());

                sb.AppendFormat(
                    "ALTER TABLE {0} ADD CONSTRAINT {1}",
                    DatabaseUtils.GetQualifiedTableName(Table.SchemaName, Table.Name),
                    DatabaseUtils.EscapeDbObject(keyName));

                sb.AppendFormat("FOREIGN KEY ({0})", ColsAsCsv(_foreignKeyColumns));

                sb.AppendFormat(
                    "REFERENCES {0} ({1})",
                    DatabaseUtils.GetQualifiedTableName(_primaryKeyTable.SchemaName, _primaryKeyTable.Name),
                    ColsAsCsv(_primaryKeyColumns));

                if (_rules.Any())
                {
                    foreach (var rule in _rules)
                    {
                        sb.Append(rule);
                    }
                }

                sb.Append(";");
            }

            return(sb.ToString());
        }
示例#3
0
 public TableDiffer(
     string connectionString,
     int commandTimeoutSecs,
     string oldTable,
     string newTable,
     int primaryKeyColCount = 1)
     : base(
         connectionString,
         commandTimeoutSecs,
         $"select * from {DatabaseUtils.EscapeDbObject(oldTable)}",
         $"select * from {DatabaseUtils.EscapeDbObject(newTable)}",
         primaryKeyColCount)
 {
 }
示例#4
0
 public StageTableDiffer(
     string connectionString,
     int commandTimeoutSecs,
     string oldTable,
     string newTable,
     int timetableId,
     int primaryKeyColCount = 1)
     : base(
         connectionString,
         commandTimeoutSecs,
         $"select * from {DatabaseUtils.EscapeDbObject(oldTable)} where src_timetable_id = {timetableId}",
         $"select * from {DatabaseUtils.EscapeDbObject(newTable)} where src_timetable_id = {timetableId}",
         primaryKeyColCount)
 {
 }
示例#5
0
        private string ColsAsCsv(IReadOnlyList <string> colNames)
        {
            var sb = new StringBuilder();

            for (int n = 0; n < colNames.Count; ++n)
            {
                if (n > 0)
                {
                    sb.Append(", ");
                }

                sb.AppendFormat("{0}", DatabaseUtils.EscapeDbObject(colNames[n]));
            }

            return(sb.ToString());
        }
示例#6
0
        public string GenerateSqlToCreate()
        {
            var sb = new SqlBuilder();

            if (Table != null)
            {
                sb.AppendFormat(
                    "ALTER TABLE {0} ADD CONSTRAINT {1} CHECK ({2})",
                    DatabaseUtils.GetQualifiedTableName(Table.SchemaName, Table.Name),
                    DatabaseUtils.EscapeDbObject(Name),
                    _body);

                sb.Append(";");
            }

            return(sb.ToString());
        }
示例#7
0
        public string GenerateSqlToCreate()
        {
            var sb = new SqlBuilder();

            if (Table != null)
            {
                string name = Name ?? string.Concat(Prefix, Table.Name, "_", _colName.ToUpper());

                sb.AppendFormat(
                    "ALTER TABLE {0} ADD CONSTRAINT {1} DEFAULT {2} FOR {3}",
                    DatabaseUtils.GetQualifiedTableName(Table.SchemaName, Table.Name),
                    DatabaseUtils.EscapeDbObject(name),
                    _defaultValue,
                    _colName);

                sb.Append(";");
            }

            return(sb.ToString());
        }
示例#8
0
        string IDatabaseObject.GenerateSqlToCreate()
        {
            var sb = new SqlBuilder();

            if (Table != null)
            {
                string keyName = Name ?? string.Concat(PREFIX, Table.Name.ToUpper());

                sb.AppendFormat(
                    "ALTER TABLE {0} ADD CONSTRAINT {1} PRIMARY KEY",
                    DatabaseUtils.GetQualifiedTableName(Table.SchemaName, Table.Name),
                    DatabaseUtils.EscapeDbObject(keyName));

                if (Clustered)
                {
                    sb.Append("CLUSTERED");
                }

                sb.Append("(");

                for (int n = 0; n < Key.Count; ++n)
                {
                    if (n > 0)
                    {
                        sb.Append(",");
                    }

                    var part = Key[n];
                    sb.AppendFormat(
                        " {0} {1}",
                        DatabaseUtils.EscapeDbObject(part.ColumnName),
                        Utils.ColumnOrderToSqlString(part.ColumnOrder));
                }

                sb.Append(");");
            }

            return(sb.ToString());
        }