protected internal override Expression VisitInsertSelect(InsertSelectExpression insertSelect) { if (insertSelect.ReturnRowCount == false) { return(insertSelect); } return(new InsertSelectExpression(insertSelect.Table, insertSelect.UseHistoryTable, insertSelect.Source, insertSelect.Assigments, returnRowCount: false)); }
protected internal virtual Expression VisitInsertSelect(InsertSelectExpression insertSelect) { var source = VisitSource(insertSelect.Source); var assigments = Visit(insertSelect.Assigments, VisitColumnAssigment); if (source != insertSelect.Source || assigments != insertSelect.Assigments) { return(new InsertSelectExpression(insertSelect.Table, insertSelect.UseHistoryTable, (SourceWithAliasExpression)source, assigments, insertSelect.ReturnRowCount)); } return(insertSelect); }
protected internal override Expression VisitInsertSelect(InsertSelectExpression insertSelect) { var coll = GetColumnCollector(insertSelect.Source.KnownAliases); foreach (var ca in insertSelect.Assigments) { coll.Visit(ca.Expression); } var source = Visit(insertSelect.Source); var assigments = Visit(insertSelect.Assigments, VisitColumnAssigment); if (source != insertSelect.Source || assigments != insertSelect.Assigments) { return(new InsertSelectExpression(insertSelect.Table, insertSelect.UseHistoryTable, (SourceWithAliasExpression)source, assigments, insertSelect.ReturnRowCount)); } return(insertSelect); }
protected override Expression VisitInsertSelect(InsertSelectExpression insertSelect) { insertSelect.Assigments.NewIfChange(VisitColumnAssigment); var source = Visit(insertSelect.Source); var assigments = insertSelect.Assigments.NewIfChange(VisitColumnAssigment); if (source != insertSelect.Source || assigments != insertSelect.Assigments) return new InsertSelectExpression(insertSelect.Table, (SourceWithAliasExpression)source, assigments); return insertSelect; }
protected override Expression VisitInsertSelect(InsertSelectExpression insertSelect) { sb.Append("INSERT INTO "); sb.Append(insertSelect.Table.Name.ToString()); sb.Append("("); for (int i = 0, n = insertSelect.Assigments.Count; i < n; i++) { ColumnAssignment assignment = insertSelect.Assigments[i]; if (i > 0) { sb.Append(", "); if (i % 4 == 0) this.AppendNewLine(Indentation.Same); } sb.Append(assignment.Column.SqlEscape()); } sb.Append(")"); this.AppendNewLine(Indentation.Same); sb.Append("SELECT "); for (int i = 0, n = insertSelect.Assigments.Count; i < n; i++) { ColumnAssignment assignment = insertSelect.Assigments[i]; if (i > 0) { sb.Append(", "); if (i % 4 == 0) this.AppendNewLine(Indentation.Same); } this.Visit(assignment.Expression); } sb.Append(" FROM "); VisitSource(insertSelect.Source); return insertSelect; }