Пример #1
0
 void ISqlElement.Render(RenderContext context)
 {
     context.WriteLine("BEGIN");
     context.RenderDelimited(this, context.LineDelimiter);
     context.WriteLine();
     context.Write("END");
 }
Пример #2
0
 void ISqlElement.Render(RenderContext context)
 {
     context.Write(Name);
     context.Write('(');
     context.RenderDelimited(Parameters);
     context.Write(')');
 }
Пример #3
0
        void ISqlElement.Render(RenderContext context)
        {
            var output = OutputType.None;

            if (_returning?.Any() == true)
            {
                output = context.Dialect.OutputType;
                if (output == OutputType.None)
                {
                    throw new InvalidCommandException("This dialect does not support return clauses in delete statements.");
                }
            }

            using (context.EnterChildMode(RenderMode.Nested))
            {
                context.Write("DELETE FROM ");
                context.Render(_from.Value);

                // OUTPUT statements are rendered before where clauses
                if (output == OutputType.Output)
                {
                    context.WriteLine();
                    context.Write("OUTPUT ");
                    context.RenderDelimited(_returning);
                }

                if (Where != null)
                {
                    context.WriteLine();
                    context.Write("WHERE ");
                    context.Render(Where.Value);
                }

                // RETURNING statements are rendered after where clauses
                if (output == OutputType.Returning)
                {
                    context.WriteLine();
                    context.Write("RETURNING ");
                    context.RenderDelimited(_returning);
                }

                context.Write(';');
            }
        }
Пример #4
0
        void ISqlElement.Render(RenderContext context)
        {
            if (Unique)
            {
                context.Write("CREATE UNIQUE INDEX ");
            }
            else
            {
                context.Write("CREATE INDEX ");
            }

            context.WriteIdentifier(Name);
            context.WriteLine();
            context.Write("ON ");
            context.Render(On);
            context.Write('(');
            context.RenderDelimited(Columns);
            context.Write(");");
        }
Пример #5
0
        void ISqlElement.Render(RenderContext context)
        {
            if (Name == null)
            {
                throw new InvalidCommandException("Create table statement must specify a name.");
            }

            context.Write("CREATE TABLE ");
            context.Render(Name);
            context.WriteLine();
            context.WriteLine("(");
            context.RenderDelimited(Columns, "," + context.LineDelimiter);
            foreach (var constraint in Constraints)
            {
                context.WriteLine(",");
                context.Render(constraint);
            }
            context.WriteLine();
            context.Write(");");
        }
Пример #6
0
 void ISqlElement.Render(RenderContext context)
 {
     context.Write('(');
     context.RenderDelimited(Items);
     context.Write(')');
 }