private void BuildInsertAction(MergeSpecification specification) { var action = new InsertMergeAction(); var insertSource = action.Source = new ValuesInsertSource(); var row = new RowValue(); foreach (var column in _columnDescriptors) { var colRef = new ColumnReferenceExpression(); colRef.ColumnType = ColumnType.Regular; colRef.MultiPartIdentifier = new MultiPartIdentifier().Create(column.Name); action.Columns.Add(colRef); colRef = new ColumnReferenceExpression(); colRef.ColumnType = ColumnType.Regular; colRef.MultiPartIdentifier = new MultiPartIdentifier().Create(new Identifier { Value = MergeIdentifierStrings.SourceName }, column.Name); row.ColumnValues.Add(colRef); } insertSource.RowValues.Add(row); specification.ActionClauses.Add(new MergeActionClause { Action = action, Condition = MergeCondition.NotMatchedByTarget }); }
public override void ExplicitVisit(InsertMergeAction fragment) { _fragments.Add(fragment); }
public override void Visit(InsertMergeAction node) { this.action(node); }
private void BuildInsertAction(MergeSpecification specification) { var action = new InsertMergeAction(); var insertSource = action.Source = new ValuesInsertSource(); var row = new RowValue(); foreach (var column in _merge.Table.Columns) { var colRef = new ColumnReferenceExpression(); colRef.ColumnType = ColumnType.Regular; colRef.MultiPartIdentifier = MultiPartIdentifierBuilder.Get(column.Name.GetName()); action.Columns.Add(colRef); colRef = new ColumnReferenceExpression(); colRef.ColumnType = ColumnType.Regular; colRef.MultiPartIdentifier = MultiPartIdentifierBuilder.Get(MergeIdentifierStrings.SourceName, column.Name.GetName()); row.ColumnValues.Add(colRef); } insertSource.RowValues.Add(row); specification.ActionClauses.Add(new MergeActionClause { Action = action, Condition = MergeCondition.NotMatchedByTarget }); }