Exemplo n.º 1
0
        public override bool VisitExprIdentityInsert(ExprIdentityInsert exprIdentityInsert, IExpr?parent)
        {
            if (exprIdentityInsert.IdentityColumns.Count < 1)
            {
                return(exprIdentityInsert.Insert.Accept(this, exprIdentityInsert));
            }

            this.Builder.Append("SET IDENTITY_INSERT ");
            exprIdentityInsert.Insert.Target.Accept(this, exprIdentityInsert);
            this.Builder.Append(" ON;");

            var result = exprIdentityInsert.Insert.Accept(this, exprIdentityInsert);

            this.Builder.Append(";SET IDENTITY_INSERT ");
            exprIdentityInsert.Insert.Target.Accept(this, exprIdentityInsert);
            this.Builder.Append(" OFF;");
            return(result);
        }
Exemplo n.º 2
0
 public override bool VisitExprOffsetFetch(ExprOffsetFetch exprOffsetFetch, IExpr?parent)
 {
     return(this.VisitExprOffsetFetchCommon(exprOffsetFetch, parent));
 }
Exemplo n.º 3
0
 protected override void AppendSelectTop(ExprValue top, IExpr?parent)
 {
     //N/A
 }
Exemplo n.º 4
0
 public override bool VisitExprTypeXml(ExprTypeXml exprTypeXml, IExpr?arg)
 {
     this.Builder.Append("xml");
     return(true);
 }
Exemplo n.º 5
0
 public override bool VisitExprTableFullName(ExprTableFullName exprTableFullName, IExpr?parent)
 => this.VisitExprTableFullNameCommon(exprTableFullName, parent);
Exemplo n.º 6
0
 public override bool VisitExprTypeDouble(ExprTypeDouble exprTypeDouble, IExpr?parent)
 {
     this.Builder.Append("float");
     return(true);
 }
Exemplo n.º 7
0
 public override bool VisitExprTypeGuid(ExprTypeGuid exprTypeGuid, IExpr?parent)
 {
     this.Builder.Append("uniqueidentifier");
     return(true);
 }
Exemplo n.º 8
0
        private void GenericUpdate(ExprTable targetIn, IReadOnlyList <ExprColumnSetClause> sets, IExprTableSource?source, ExprBoolean?filter, IExpr?parent)
        {
            this.AssertNotEmptyList(sets, "'UPDATE' statement should have at least one set clause");

            IExprColumnSource target = targetIn.FullName;

            if (targetIn.Alias != null)
            {
                target = targetIn.Alias;
                source ??= targetIn;
            }

            this.Builder.Append("UPDATE ");
            target.Accept(this, parent);

            this.Builder.Append(" SET ");
            this.AcceptListComaSeparated(sets, parent);

            if (source != null)
            {
                this.Builder.Append(" FROM ");
                source.Accept(this, parent);
            }
            if (filter != null)
            {
                this.Builder.Append(" WHERE ");
                filter.Accept(this, parent);
            }
        }
Exemplo n.º 9
0
 public override bool VisitExprDelete(ExprDelete exprDelete, IExpr?parent)
 {
     this.GenericDelete(exprDelete.Target, null, exprDelete.Source, exprDelete.Filter, exprDelete);
     return(true);
 }
Exemplo n.º 10
0
 public override bool VisitExprInsertQuery(ExprInsertQuery exprInsertQuery, IExpr?parent)
 {
     return(this.VisitExprInsertQueryCommon(exprInsertQuery, parent));
 }
Exemplo n.º 11
0
 public override bool VisitExprUpdate(ExprUpdate exprUpdate, IExpr?parent)
 {
     this.GenericUpdate(exprUpdate.Target, exprUpdate.SetClause, exprUpdate.Source, exprUpdate.Filter, exprUpdate);
     return(true);
 }
Exemplo n.º 12
0
        public override bool VisitExprInsertOutput(ExprInsertOutput exprInsertOutput, IExpr?parent)
        {
            this.GenericInsert(exprInsertOutput.Insert,
                               () =>
            {
                exprInsertOutput.OutputColumns.AssertNotEmpty("INSERT OUTPUT cannot be empty");
                this.Builder.Append("OUTPUT ");
                for (int i = 0; i < exprInsertOutput.OutputColumns.Count; i++)
                {
                    if (i != 0)
                    {
                        this.Builder.Append(',');
                    }

                    this.Builder.Append("INSERTED.");
                    exprInsertOutput.OutputColumns[i].Accept(this, exprInsertOutput);
                }
            },
                               null);
            return(true);
        }
Exemplo n.º 13
0
 public override bool VisitExprDerivedTableValues(ExprDerivedTableValues derivedTableValues, IExpr?parent)
 {
     return(this.VisitExprDerivedTableValuesCommon(derivedTableValues, parent));
 }
Exemplo n.º 14
0
 public override bool VisitExprDbSchema(ExprDbSchema exprDbSchema, IExpr?parent)
 {
     return(this.VisitExprDbSchemaCommon(exprDbSchema, parent));
 }
Exemplo n.º 15
0
 public override bool VisitExprTypeInt32(ExprTypeInt32 exprTypeInt32, IExpr?parent)
 {
     this.Builder.Append("int");
     return(true);
 }
Exemplo n.º 16
0
 public override bool VisitExprDeleteOutput(ExprDeleteOutput exprDeleteOutput, IExpr?parent)
 {
     this.GenericDelete(exprDeleteOutput.Delete.Target, exprDeleteOutput.OutputColumns, exprDeleteOutput.Delete.Source, exprDeleteOutput.Delete.Filter, exprDeleteOutput);
     return(true);
 }
Exemplo n.º 17
0
 public override bool VisitExprTypeInt64(ExprTypeInt64 exprTypeInt64, IExpr?parent)
 {
     this.Builder.Append("bigint");
     return(true);
 }
Exemplo n.º 18
0
 public override bool VisitExprCast(ExprCast exprCast, IExpr?parent)
 {
     return(this.VisitExprCastCommon(exprCast, parent));
 }
Exemplo n.º 19
0
        public override bool VisitExprTypeDateTime(ExprTypeDateTime exprTypeDateTime, IExpr?parent)
        {
            if (exprTypeDateTime.IsDate)
            {
                this.Builder.Append("date");
            }
            else
            {
                this.Builder.Append("datetime");
            }

            return(true);
        }
Exemplo n.º 20
0
        private void GenericDelete(ExprTable targetIn, IReadOnlyList <ExprAliasedColumn>?output, IExprTableSource?source, ExprBoolean?filter, IExpr?parent)
        {
            IExprColumnSource target = targetIn.FullName;

            if (targetIn.Alias != null)
            {
                target = targetIn.Alias;
                source ??= targetIn;
            }

            this.Builder.Append("DELETE ");
            target.Accept(this, parent);

            if (output != null)
            {
                this.AssertNotEmptyList(output, "Output list in 'DELETE' statement cannot be empty");
                this.Builder.Append(" OUTPUT ");
                for (int i = 0; i < output.Count; i++)
                {
                    if (i != 0)
                    {
                        this.Builder.Append(',');
                    }

                    this.Builder.Append("DELETED.");

                    var col = output[i];

                    if (col.Column.Source == null)
                    {
                        col.Accept(this, parent);
                    }
                    else
                    {
                        new ExprAliasedColumnName(col.Column.ColumnName, col.Alias).Accept(this, parent);
                    }
                }
            }

            if (source != null)
            {
                this.Builder.Append(" FROM ");
                source.Accept(this, parent);
            }
            if (filter != null)
            {
                this.Builder.Append(" WHERE ");
                filter.Accept(this, parent);
            }
        }
Exemplo n.º 21
0
        public override bool VisitExprTypeFixSizeString(ExprTypeFixSizeString exprTypeFixSizeString, IExpr?arg)
        {
            if (exprTypeFixSizeString.IsUnicode)
            {
                this.AppendName("nchar");
            }
            else
            {
                this.AppendName("char");
            }

            this.Builder.Append('(');
            this.Builder.Append(exprTypeFixSizeString.Size.ToString());
            this.Builder.Append(')');

            return(true);
        }
Exemplo n.º 22
0
 public override bool VisitExprTypeBoolean(ExprTypeBoolean exprTypeBoolean, IExpr?parent)
 {
     this.Builder.Append("bit");
     return(true);
 }
Exemplo n.º 23
0
 public override bool VisitExprGetUtcDate(ExprGetUtcDate exprGetUtcDate, IExpr?parent)
 {
     this.Builder.Append("GETUTCDATE()");
     return(true);
 }
Exemplo n.º 24
0
 public override bool VisitExprTypeByte(ExprTypeByte exprTypeByte, IExpr?parent)
 {
     this.Builder.Append("tinyint");
     return(true);
 }
Exemplo n.º 25
0
 protected override void AppendSelectTop(ExprValue top, IExpr?parent)
 {
     this.Builder.Append("TOP ");
     top.Accept(this, top);
     this.Builder.Append(' ');
 }
Exemplo n.º 26
0
        public override bool VisitExprTypeFixSizeByteArray(ExprTypeFixSizeByteArray exprTypeFixSizeByteArray, IExpr?arg)
        {
            this.Builder.Append("binary(");
            this.Builder.Append(exprTypeFixSizeByteArray.Size.ToString());
            this.Builder.Append(')');

            return(true);
        }
Exemplo n.º 27
0
 public override bool VisitExprStringConcat(ExprStringConcat exprStringConcat, IExpr?parent)
 {
     exprStringConcat.Left.Accept(this, exprStringConcat);
     this.Builder.Append("||");
     exprStringConcat.Right.Accept(this, exprStringConcat);
     return(true);
 }
Exemplo n.º 28
0
 public override bool VisitExprTypeInt16(ExprTypeInt16 exprTypeInt16, IExpr?parent)
 {
     this.Builder.Append("smallint");
     return(true);
 }
Exemplo n.º 29
0
 protected override void AppendSelectLimit(ExprValue top, IExpr?parent)
 {
     this.Builder.Append(" LIMIT ");
     top.Accept(this, parent);
 }
Exemplo n.º 30
0
 public override bool VisitExprInsert(ExprInsert exprInsert, IExpr?parent)
 {
     this.GenericInsert(exprInsert, null, null);
     return(true);
 }