protected override void BuildEmptyInsert(SqlInsertClause insertClause) { StringBuilder.Append("VALUES"); foreach (var col in insertClause.Into.Fields) { StringBuilder.Append("(DEFAULT)"); } StringBuilder.AppendLine(); }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { if (Version == DB2Version.zOS) { StringBuilder .AppendLine(";") .AppendLine("SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1"); } }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { var identityField = insertClause.Into !.GetIdentityField(); if (identityField == null) { throw new SqlException("Identity field must be defined for '{0}'.", insertClause.Into.Name); } AppendIndent().AppendLine("RETURNING"); AppendIndent().Append("\t"); BuildExpression(identityField, false, true); }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { var identityField = insertClause.Into !.GetIdentityField(); if (identityField == null) { throw new SqlException("Identity field must be defined for '{0}'.", insertClause.Into.NameForLogging); } AppendIndent().AppendLine("RETURNING "); AppendIndent().Append('\t'); BuildExpression(identityField, false, true); StringBuilder.AppendLine(" INTO :IDENTITY_PARAMETER"); }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { var identityField = insertClause.Into !.GetIdentityField(); if (identityField != null && (identityField.Type !.Value.DataType == DataType.Guid || SqlServerConfiguration.GenerateScopeIdentity == false)) { StringBuilder .AppendLine(); AppendIndent() .Append("SELECT "); Convert(StringBuilder, identityField.PhysicalName, ConvertType.NameToQueryField); StringBuilder.Append(" FROM "); AppendOutputTableVariable(insertClause.Into) .AppendLine(); }
protected override void BuildOutputSubclause(SqlStatement statement, SqlInsertClause insertClause) { if (insertClause.WithIdentity) { var identityField = insertClause.Into.GetIdentityField(); if (identityField != null && (identityField.DataType == DataType.Guid || SqlServerConfiguration.GenerateScopeIdentity == false)) { StringBuilder .Append("OUTPUT [INSERTED].") .Append(Convert(identityField.PhysicalName, ConvertType.NameToQueryField)) .AppendLine(); AppendIndent() .Append("INTO "); AppendOutputTableVariable(insertClause.Into) .AppendLine(); } } }
protected override void BuildMergeOperationInsert(SqlMergeOperationClause operation) { StringBuilder .AppendLine() .AppendLine("WHEN NOT MATCHED THEN") .Append("INSERT"); var insertClause = new SqlInsertClause(); insertClause.Items.AddRange(operation.Items); BuildInsertClause(new SqlInsertOrUpdateStatement(null), insertClause, null, false, false); if (operation.Where != null) { StringBuilder.Append(" WHERE "); BuildSearchCondition(Precedence.Unknown, operation.Where); } }
protected override void BuildInsertQuery(SqlStatement statement, SqlInsertClause insertClause, bool addAlias) { if (insertClause.WithIdentity) { var identityField = insertClause.Into !.GetIdentityField(); if (identityField != null && (identityField.Type !.Value.DataType == DataType.Guid || SqlServerConfiguration.GenerateScopeIdentity == false)) { AppendIndent() .Append("DECLARE "); AppendOutputTableVariable(insertClause.Into) .Append(" TABLE ("); Convert(StringBuilder, identityField.PhysicalName, ConvertType.NameToQueryField); StringBuilder.Append(' '); BuildCreateTableFieldType(identityField); StringBuilder .AppendLine(")") .AppendLine(); } } base.BuildInsertQuery(statement, insertClause, addAlias); }
protected override void BuildInsertQuery(SqlStatement statement, SqlInsertClause insertClause, bool addAlias) { if (statement is SqlStatementWithQueryBase withQuery && withQuery.With?.Clauses.Count > 0) { BuildInsertQuery2(statement, insertClause, addAlias); }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { //if (Version == DB2Version.zOS) { // base.StringBuilder.AppendLine(";").AppendLine($"SELECT {AS400Tools.IdentityColumnSql} FROM {AS400Tools.DummyTableName()}"); //} }
protected override void BuildGetIdentity(SqlInsertClause insertClause) { StringBuilder .AppendLine() .AppendLine("SELECT @@IDENTITY"); }
protected override void BuildEmptyInsert(SqlInsertClause insertClause) { StringBuilder.AppendLine("VALUES ()"); }
protected override void BuildOutputSubclause(SqlStatement statement, SqlInsertClause insertClause) { // OUTPUT clause is only supported by the MS SQL Server starts with 2005 version. }
protected override void BuildOutputSubclause(SqlStatement statement, SqlInsertClause insertClause) { if (insertClause.WithIdentity) { var identityField = insertClause.Into !.GetIdentityField(); if (identityField != null && (identityField.Type !.Value.DataType == DataType.Guid || SqlServerConfiguration.GenerateScopeIdentity == false)) { StringBuilder .Append("OUTPUT [INSERTED]."); Convert(StringBuilder, identityField.PhysicalName, ConvertType.NameToQueryField); StringBuilder.AppendLine(); AppendIndent() .Append("INTO "); AppendOutputTableVariable(insertClause.Into) .AppendLine(); } } else { var output = statement.GetOutputClause(); if (output != null && output.HasOutputItems) { AppendIndent() .AppendLine("OUTPUT"); if (output.InsertedTable != null) { output.InsertedTable.PhysicalName = "INSERTED"; } if (output.DeletedTable != null) { output.DeletedTable.PhysicalName = "DELETED"; } ++Indent; bool first = true; foreach (var oi in output.OutputItems) { if (!first) { StringBuilder.Append(',').AppendLine(); } first = false; AppendIndent(); BuildExpression(oi.Expression !); } if (output.OutputItems.Count > 0) { StringBuilder .AppendLine(); } --Indent; if (output.OutputQuery != null) { BuildColumns(output.OutputQuery); } if (output.OutputTable != null) { AppendIndent() .Append("INTO ") .Append(GetTablePhysicalName(output.OutputTable)) .AppendLine(); AppendIndent() .AppendLine("("); ++Indent; var firstColumn = true; foreach (var oi in output.OutputItems) { if (!firstColumn) { StringBuilder.Append(',').AppendLine(); } firstColumn = false; AppendIndent(); BuildExpression(oi.Column, false, true); } StringBuilder .AppendLine(); --Indent; AppendIndent() .AppendLine(")"); } } } }
public virtual void Visiting(SqlInsertClause insertClause) { sqlBuilder.Append("Insert Into " + EncapsulateTable(insertClause.SqlTable.Name)); }
public virtual void Visited(SqlInsertClause insertClause) { }