Exemplo n.º 1
0
        public string ScriptCreate()
        {
            switch (Type)
            {
            case "CHECK":
                var notForReplicationOption = _isNotForReplication ? "NOT FOR REPLICATION" : "";
                return
                    ($"CONSTRAINT [{Name}] CHECK {notForReplicationOption} {_checkConstraintExpression}");

            case "INDEX":
                var sql =
                    $"CREATE{UniqueText}{IndexType.Space()} INDEX [{Name}] ON [{Table.Owner}].[{Table.Name}] ({string.Join(", ", Columns.Select(c => c.Script()).ToArray())})";
                if (IncludedColumns.Count > 0)
                {
                    sql += $" INCLUDE ([{string.Join("], [", IncludedColumns.ToArray())}])";
                }

                if (!string.IsNullOrEmpty(Filter))
                {
                    sql += $" WHERE {Filter}";
                }

                return(sql);
            }

            return((Table.IsType ? string.Empty : $"CONSTRAINT [{Name}] ") +
                   $"{Type}{IndexType.Space()} ({string.Join(", ", Columns.Select(c => c.Script()).ToArray())})");
        }