public override string ToSql(ExpressionSqlBuilder builder) { StringBuilder sb = new StringBuilder(); sb.Append("update "); if (builder.DbType == DriverType.PostgreSQL) { sb.Append(TableClause.ToSql(builder)); writeSET(sb, builder); } if (builder.DbType == DriverType.SqlServer) { if (string.IsNullOrEmpty(TableClause.Alias)) { sb.Append(TableClause.ToSql(builder)); writeSET(sb, builder); } else { sb.Append(builder.EncodeTable(TableClause.Alias) + " "); writeSET(sb, builder); sb.Append(" from ").Append(TableClause.ToSql(builder)).Append(" "); } } AddReturningToSql1(builder, sb); if (Where != null) { sb.Append(" where ").Append(Where.ToSql(builder)); } AddReturningToSql2(builder, sb); return(sb.ToString()); }
public override string ToSql(ExpressionSqlBuilder builder) { StringBuilder sb = new StringBuilder(); sb.Append("insert into ").Append(TableClause.ToSql(builder)); if (DefaultValues) { sb.Append(" DEFAULT VALUES"); AddReturningToSql1(builder, sb); } else { if (ColumnOfValues.Count > 0) { sb.Append(" ( "); for (int i = 0; i < ColumnOfValues.Count; i++) { var sc = ColumnOfValues[i]; if (i > 0) { sb.Append(", "); } if (!(sc is FieldExpr)) { throw new Exception("В перечне колонок INSERT INTO () должны быть простые имена колонок"); } FieldExpr fe = sc as FieldExpr; sb.Append(fe.ToSqlShort(builder)); } sb.Append(")"); } AddReturningToSql1(builder, sb); if (Values != null && Values.Count > 0) { sb.Append(" values"); for (int i = 0; i < Values.Count; i++) { var sc = Values[i]; if (i > 0) { sb.Append(", "); } sb.Append(sc.ToSql(builder)); } } else { sb.Append(" ").Append(Select.ToSql(builder)); } } AddReturningToSql2(builder, sb); return(sb.ToString()); }
public override string ToSql(ExpressionSqlBuilder builder) { StringBuilder sb = new StringBuilder(); sb.Append("delete "); if (builder.DbType == DriverType.SqlServer) { if (!string.IsNullOrEmpty(TableClause.Alias)) { sb.Append(builder.EncodeTable(TableClause.Alias)).Append(" "); } } sb.Append("from "); sb.Append(TableClause.ToSql(builder)).Append(" "); AddReturningToSql1(builder, sb); if (Where != null) { sb.Append(" where ").Append(Where.ToSql(builder)); } AddReturningToSql2(builder, sb); return(sb.ToString()); }