public override void WriteTo(SqlWriter writer) {
			writer.WriteKeyword("FOR UPDATE");
			if (columns.Count > 0) {
				writer.WriteKeyword(" OF ");
				writer.WriteScriptSequence(columns, WhitespacePadding.None, w => w.Write(", "));
			}
		}
Пример #2
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteScript(valueExpression, WhitespacePadding.None);
			writer.WriteKeyword(" IS");
			base.WriteTo(writer);
			writer.WriteKeyword(" NULL");
		}
		public override sealed void WriteTo(SqlWriter writer) {
			if (position != CursorPosition.None) {
				writer.WriteKeyword(position.ToString().ToUpperInvariant());
				writer.Write(' ');
			}
			WriteOffset(writer);
			writer.WriteKeyword("FROM");
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("DROP INDEX ");
			writer.WriteScript(indexName, WhitespacePadding.None);
			writer.WriteKeyword(" ON ");
			writer.WriteScript(tableName, WhitespacePadding.None);
			writer.WriteScript(indexOptions, WhitespacePadding.SpaceBefore);
		}
Пример #5
0
		public override void WriteTo(SqlWriter writer) {
			if (HasValue) {
				writer.WriteKeyword("USING XML INDEX ");
				writer.WriteScript(indexName, WhitespacePadding.None);
				writer.WriteLine();
				writer.WriteKeyword("FOR ");
				writer.Write(IndexForSpecifier);
			}
		}
		protected override void WriteParameterQualifiers(SqlWriter writer) {
			if (varying) {
				writer.WriteKeyword(" VARYING");
			}
			base.WriteParameterQualifiers(writer);
			if (output) {
				writer.WriteKeyword(" OUTPUT");
			}
		}
Пример #7
0
		protected virtual void WriteMatchedTo(SqlWriter writer) {
			if (string.IsNullOrEmpty(NotMatchedBy)) {
				writer.WriteKeyword("MATCHED");
			} else {
				writer.WriteKeyword("NOT MATCHED BY ");
				writer.WriteKeyword(NotMatchedBy);
			}
			writer.WriteScript(predicate, WhitespacePadding.None, w => w.WriteOperator(" AND "), null);
		}
Пример #8
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("BEGIN");
			writer.WriteLine();
			using (writer.Indent()) {
				writer.WriteScriptSequence(statements, WhitespacePadding.None, w => w.WriteLine(";"));
				writer.WriteLine(";");
			}
			writer.WriteKeyword("END");
		}
Пример #9
0
		public override sealed void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("WHEN ");
			using (writer.Indent()) {
				WriteMatchedTo(writer);
				writer.WriteKeyword(" THEN");
				writer.WriteLine();
				writer.WriteScript(operation, WhitespacePadding.None);
			}
		}
		public override void WriteTo(SqlWriter writer) {
			writer.WriteKeyword(" TRIGGER ");
			if (All) {
				writer.WriteKeyword("ALL");
			} else {
				writer.WriteScriptSequence(triggerNames, WhitespacePadding.None, w => w.Write(", "));
			}
			writer.WriteKeyword(" ON ");
			writer.WriteScript(target, WhitespacePadding.None);
		}
		public override void WriteTo(SqlWriter writer) {
			base.WriteTo(writer);
			writer.WriteEnum(tableCheck, WhitespacePadding.SpaceAfter);
			WriteCheckOperation(writer);
			writer.WriteKeyword(" CONSTRAINT ");
			if (constraintName != null) {
				writer.WriteScript(constraintName, WhitespacePadding.None);
			} else {
				writer.WriteKeyword("ALL");
			}
		}
Пример #12
0
		public override void WriteTo(SqlWriter writer) {
			writer.WriteKeyword("FETCH ");
			writer.WriteScript(cursorPosition, WhitespacePadding.SpaceAfter);
			writer.WriteScript(cursorName, WhitespacePadding.None);
			if (destinationVariables.Count > 0) {
				using (writer.Indent()) {
					writer.WriteLine();
					writer.WriteKeyword("INTO ");
					writer.WriteScriptSequence(destinationVariables, WhitespacePadding.None, w => w.Write(", "));
				}
			}
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("DECLARE ");
			writer.WriteScript(variableName, WhitespacePadding.None);
			writer.WriteKeyword(" TABLE ");
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScriptSequence(tableDefinitions, WhitespacePadding.NewlineBefore, w => w.Write(','));
			}
			writer.WriteLine();
			writer.Write(')');
		}
Пример #14
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("RAISERROR");
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScriptSequence(arguments, WhitespacePadding.None, w => w.Write(", "));
			}
			writer.Write(')');
			if (options.Count > 0) {
				writer.WriteKeyword(" WITH ");
				writer.WriteScriptSequence(options, WhitespacePadding.None, w => w.Write(", "));
			}
		}
Пример #15
0
		public override sealed void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteScript(queryOptions, WhitespacePadding.NewlineAfter);
			writer.WriteKeyword("INSERT ");
			using (writer.Indent()) {
				writer.WriteScript(topExpression, WhitespacePadding.SpaceAfter);
				writer.WriteLine();
				writer.WriteKeyword("INTO ");
				writer.WriteScript(destinationRowset, WhitespacePadding.None);
				WriteToInternal(writer);
				writer.WriteScript(QueryHint, WhitespacePadding.NewlineBefore);
			}
		}
Пример #16
0
		public override void WriteTo(SqlWriter writer) {
			writer.WriteKeyword("FOR XML ");
			writer.WriteKeyword(KindSpecifier);
			if (elementName != null) {
				writer.Write(" (");
				writer.WriteScript(elementName, WhitespacePadding.None);
				writer.Write(')');
			}
			if (directives.Count > 0) {
				writer.Write(", ");
				writer.WriteScriptSequence(directives, WhitespacePadding.None, w => w.Write(", "));
			}
		}
Пример #17
0
		public override void WriteTo(SqlWriter writer) {
			if (partitions.Count > 0) {
				writer.WriteKeyword("PARTITION BY ");
				writer.WriteScriptSequence(partitions, WhitespacePadding.None, w => w.Write(", "));
				if (orders.Count > 0) {
					writer.Write(' ');
				}
			}
			if (orders.Count > 0) {
				writer.WriteKeyword("ORDER BY ");
				writer.WriteScriptSequence(orders, WhitespacePadding.None, w => w.Write(", "));
			}
		}
Пример #18
0
		public override void WriteTo(SqlWriter writer) {
			if (HasValue) {
				writer.WriteKeyword("TOP ");
				writer.Write('(');
				writer.WriteScript(expression, WhitespacePadding.None);
				writer.Write(')');
				if (percent) {
					writer.WriteKeyword(" PERCENT");
				}
				if (withTies) {
					writer.WriteKeyword(" WITH TIES");
				}
			}
		}
Пример #19
0
		protected internal override void WriteToInternal(SqlWriter writer, bool isPartOfQualifiedName) {
			Debug.Assert(!isPartOfQualifiedName);
			if (global) {
				writer.WriteKeyword("GLOBAL ");
			}
			WriteNonGlobalInternal(writer);
		}
		public override void WriteTo(SqlWriter writer) {
			base.WriteTo(writer);
			writer.WriteKeyword("CHECK ");
			writer.WriteScript(replication, WhitespacePadding.SpaceAfter);
			writer.WriteScript(predicate, WhitespacePadding.None);
			writer.Write(')');
		}
		public override void WriteTo(SqlWriter writer) {
			base.WriteTo(writer);
			writer.WriteKeyword("DEFAULT ");
			writer.Write('(');
			writer.WriteScript(defaultValue, WhitespacePadding.None);
			writer.Write(')');
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("CREATE XML SCHEMA COLLECTION ");
			writer.WriteScript(xmlSchemaCollectionName, WhitespacePadding.None);
			writer.WriteKeyword(" AS ");
			writer.WriteScript(expression, WhitespacePadding.None);
		}
Пример #23
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("OPTION ");
			writer.Write('(');
			writer.WriteScriptSequence(options, WhitespacePadding.None, w => w.Write(", "));
			writer.Write(')');
		}
		protected override void WriteArguments(SqlWriter writer) {
			if (isMax) {
				writer.WriteKeyword("MAX");
			} else {
				writer.WriteScript(extension, WhitespacePadding.None);
			}
		}
Пример #25
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("BEGIN TRY");
			using (writer.Indent()) {
				writer.WriteScriptSequence(tryStatements, WhitespacePadding.NewlineBefore, w => w.Write(';'));
				writer.WriteLine(";");
			}
			writer.WriteKeyword("END TRY");
			writer.WriteLine();
			writer.WriteKeyword("BEGIN CATCH");
			using (writer.Indent()) {
				writer.WriteScriptSequence(catchStatements, WhitespacePadding.NewlineBefore, w => w.Write(';'));
				writer.WriteLine(";");
			}
			writer.WriteKeyword("END CATCH");
		}
		public override void WriteTo(SqlWriter writer) {
			base.WriteTo(writer);
			writer.WriteKeyword("REFERENCES ");
			writer.WriteScript(tableName, WhitespacePadding.None);
			writer.WriteScript(refColumnName, WhitespacePadding.SpaceBefore);
			writer.WriteScriptSequence(keyActions, WhitespacePadding.SpaceBefore, null);
		}
Пример #27
0
		public override sealed void WriteTo(SqlWriter writer) {
			writer.WriteScript(parameterName, WhitespacePadding.SpaceAfter);
			writer.WriteScript(parameterTypeName, WhitespacePadding.None);
			WriteParameterQualifiers(writer);
			if (readOnly) {
				writer.WriteKeyword(" READONLY");
			}
		}
Пример #28
0
		public override void WriteTo(SqlWriter writer) {
			writer.WriteKeyword("IDENTITY");
			writer.Write('(');
			writer.WriteScript(typeName, WhitespacePadding.None);
			writer.WriteScript(seed, WhitespacePadding.None, w => w.Write(", "), null);
			writer.WriteScript(increment, WhitespacePadding.None, w => w.Write(", "), null);
			writer.Write(')');
		}
Пример #29
0
		public override void WriteTo(SqlWriter writer) {
			writer.WriteFunction("CAST");
			writer.Write('(');
			writer.WriteScript(expression, WhitespacePadding.None);
			writer.WriteKeyword(" AS ");
			writer.WriteScript(typeName, WhitespacePadding.None);
			writer.Write(')');
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteScript(functionCall, WhitespacePadding.None);
			writer.WriteKeyword(" OVER ");
			writer.Write('(');
			writer.WriteScript(rankingArguments, WhitespacePadding.None);
			writer.Write(')');
		}
Пример #31
0
 /// <summary>
 /// Writes the specified result set limitation for the current SQL dialect.
 /// Writes the <c>LIMIT <paramref name="offset"/>, <paramref name="count"/></c> clause
 /// to the output <paramref name="writer"/>.
 /// syntax.
 /// </summary>
 /// <param name="writer">
 /// The <see cref="SqlWriter"/> to write to.
 /// </param>
 /// <param name="offset">
 /// The row offset at which to start.
 /// </param>
 /// <param name="count">
 /// The number of rows to fetch.
 /// </param>
 public override void WriteLimit(SqlWriter writer, int?offset, int?count)
 {
     writer.WriteKeyword(MySqlKeywords.Limit);
     if (offset != null)
     {
         writer.WriteValue(offset.GetValueOrDefault());
         writer.WriteRaw(",");
     }
     writer.WriteValue(count.GetValueOrDefault(int.MaxValue));
 }
Пример #32
0
        /// <summary>
        /// Writes the specified result set limitation for the current SQL dialect. The default
        /// implementation uses the <c>OFFSET <paramref name="offset"/> ROWS FETCH FIRST <paramref name="count"/> ROWS ONLY</c>
        /// syntax.
        /// </summary>
        /// <param name="writer">
        /// The <see cref="SqlWriter"/> to write to.
        /// </param>
        /// <param name="offset">
        /// The row offset at which to start.
        /// </param>
        /// <param name="count">
        /// The number of rows to fetch.
        /// </param>
        public virtual void WriteLimit(SqlWriter writer, int?offset, int?count)
        {
            if (offset != null)
            {
                writer.WriteKeyword(SqlKeywords.Offset);
                writer.WriteValue(offset.Value);
                writer.WriteKeyword(SqlKeywords.Rows);
            }

            if (count != null)
            {
                writer.WriteKeyword(SqlKeywords.Fetch);
                writer.WriteKeyword(SqlKeywords.First);
                writer.WriteValue(count.Value);
                writer.WriteKeyword(SqlKeywords.Rows);
                writer.WriteKeyword(SqlKeywords.Only);
            }
        }
Пример #33
0
 public override void Visit(SqlGroupBy expression)
 {
     _writer.WriteKeyword(SqlKeywords.GroupBy);
 }