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