Beispiel #1
0
        public static SqlPreCommandSimple CreateTableSql(ITable t)
        {
            var primaryKeyConstraint = "CONSTRAINT {0} PRIMARY KEY CLUSTERED ({1} ASC)".FormatWith(PrimaryClusteredIndex.GetPrimaryKeyName(t.Name), t.PrimaryKey.Name.SqlEscape());

            return(new SqlPreCommandSimple("CREATE TABLE {0}(\r\n{1}\r\n)".FormatWith(
                                               t.Name,
                                               t.Columns.Values.Select(c => SqlBuilder.CreateColumn(c)).And(primaryKeyConstraint).ToString(",\r\n").Indent(2))));
        }
Beispiel #2
0
        public static SqlPreCommandSimple CreateTableSql(ITable t)
        {
            var primaryKeyConstraint = t.PrimaryKey == null ? null : "CONSTRAINT {0} PRIMARY KEY CLUSTERED ({1} ASC)".FormatWith(PrimaryClusteredIndex.GetPrimaryKeyName(t.Name), t.PrimaryKey.Name.SqlEscape());

            var systemPeriod = t.SystemVersioned == null ? null : Period(t.SystemVersioned);

            var columns = t.Columns.Values.Select(c => SqlBuilder.CreateColumn(c, GetDefaultConstaint(t, c), isChange: false))
                          .And(primaryKeyConstraint)
                          .And(systemPeriod)
                          .NotNull()
                          .ToString(",\r\n");

            var systemVersioning = t.SystemVersioned == null ? null :
                                   $"\r\nWITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = {t.SystemVersioned.TableName}))";

            return(new SqlPreCommandSimple($"CREATE TABLE {t.Name}(\r\n{columns}\r\n)" + systemVersioning));
        }