Пример #1
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(", "));
			}
		}
		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(", "));
			}
		}
		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(", "));
			}
		}
		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);
		}
Пример #5
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");
		}
Пример #6
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 virtual void WriteToInternal(SqlWriter writer) {
			writer.WriteScript(function, WhitespacePadding.None);
			if (functions.Count > 0) {
				writer.Write('.');
				writer.WriteScriptSequence(functions, WhitespacePadding.None, w => w.Write('.'));
			}
		}
Пример #8
0
		public AnyStatement(Identifier identifier, Sequence<Expression> expressions) {
			using (StringWriter stringWriter = new StringWriter()) {
				SqlWriter statementWriter = new SqlWriter(stringWriter, DatabaseEngine.Unknown);
				statementWriter.WriteIdentifier(identifier.Value);
				statementWriter.WriteScriptSequence(expressions, WhitespacePadding.SpaceBefore, null);
				statementText = stringWriter.ToString();
			}
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("INSERT ");
			if (columnNames.Count > 0) {
				writer.Write('(');
				writer.WriteScriptSequence(columnNames, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(") ");
			}
			if (expressions.Count > 0) {
				writer.WriteKeyword("VALUES ");
				writer.Write('(');
				writer.WriteScriptSequence(expressions, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(')');
			} else {
				writer.WriteKeyword("DEFAULT VALUES");
			}
		}
		protected override void WriteToInternal(SqlWriter writer) {
			if (columnNames.Count > 0) {
				writer.Write(" (");
				writer.WriteScriptSequence(columnNames, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(")");
			}
			writer.WriteScript(output, WhitespacePadding.NewlineBefore);
		}
Пример #11
0
		public override void WriteTo(SqlWriter writer) {
			if (HasValue) {
				writer.WriteKeyword("WITH ");
				writer.Write('(');
				writer.WriteScriptSequence(hints, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(')');
			}
		}
Пример #12
0
		public override void WriteTo(SqlWriter writer) {
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScript(inner, WhitespacePadding.NewlineBefore);
				writer.WriteScriptSequence(joins, WhitespacePadding.NewlineBefore, null);
			}
			writer.WriteLine();
			writer.Write(')');
		}
Пример #13
0
		public override void WriteTo(SqlWriter writer) {
			if (HasValue) {
				writer.WriteKeyword("OUTPUT ");
				using (writer.Indent()) {
					writer.WriteScriptSequence(columnItems, WhitespacePadding.None, w => w.Write(", "));
					if (destinationName != null) {
						writer.WriteLine();
						writer.WriteKeyword("INTO ");
						writer.WriteScript(destinationName, WhitespacePadding.None);
						if (destinationColumnNames.Count > 0) {
							writer.Write(" (");
							writer.WriteScriptSequence(destinationColumnNames, WhitespacePadding.None, w => w.Write(", "));
							writer.Write(')');
						}
					}
				}
			}
		}
Пример #14
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");
		}
Пример #15
0
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			if (HasValue) {
				writer.WriteKeyword("WITH ");
				if (namespaces.Count > 0) {
					using (writer.Indent()) {
						writer.WriteKeyword("XMLNAMESPACES ");
						writer.Write('(');
						writer.WriteScriptSequence(namespaces, WhitespacePadding.NewlineBefore, w => w.Write(','));
					}
					writer.WriteLine();
					writer.Write(')');
					if (commonTableExpressions.Count > 0) {
						writer.WriteLine(",");
					}
				}
				writer.WriteScriptSequence(commonTableExpressions, WhitespacePadding.None, w => w.WriteLine(","));
			}
		}
		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.WriteKeyword("AS TABLE ");
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScriptSequence(tableDefinitions, WhitespacePadding.NewlineBefore, w => w.Write(","));
			}
			writer.WriteLine();
			writer.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(')');
		}
Пример #19
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) {
			base.WriteTo(writer);
			writer.WriteKeyword(UniqueKindName);
			writer.Write(' ');
			writer.WriteEnum(clustered, WhitespacePadding.SpaceAfter);
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScriptSequence(indexColumns, WhitespacePadding.NewlineBefore, w => w.Write(", "));
			}
			writer.WriteLine();
			writer.Write(')');
			writer.WriteScript(indexOptionGroup, WhitespacePadding.SpaceBefore);
		}
Пример #21
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(", "));
			}
		}
		public override void WriteTo(SqlWriter writer) {
			writer.WriteScript(aliasName, WhitespacePadding.None);
			if (columnNames.Count > 0) {
				writer.Write(" (");
				writer.WriteScriptSequence(columnNames, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(')');
			}
			writer.WriteKeyword(" AS ");
			writer.Write('(');
			using (writer.Indent()) {
				writer.WriteScript(selectQuery, WhitespacePadding.NewlineBefore);
			}
			writer.WriteLine();
			writer.Write(')');
		}
Пример #23
0
		public override void WriteTo(SqlWriter writer) {
			using (writer.Indent()) {
				writer.Write('(');
				writer.WriteKeyword("VALUES");
				string separator = "";
				foreach (IEnumerable<Expression> expressions in valuesList) {
					writer.WriteLine(separator);
					separator = ",";
					writer.Write("(");
					writer.WriteScriptSequence(expressions, WhitespacePadding.None, w => w.Write(", "));
					writer.Write(")");
				}
			}
			writer.WriteLine();
			writer.Write(')');
			base.WriteTo(writer);
		}
		protected override void WriteToInternal(SqlWriter writer) {
			base.WriteToInternal(writer);
			writer.WriteLine();
			writer.WriteKeyword("VALUES");
			using (writer.Indent()) {
				string separator = "";
				foreach (IEnumerable<Expression> expressions in valuesList) {
					if (valuesList.Count > 1) {
						writer.WriteLine(separator);
					} else {
						writer.Write(' ');
					}
					separator = ",";
					writer.Write("(");
					writer.WriteScriptSequence(expressions, WhitespacePadding.None, w => w.Write(", "));
					writer.Write(")");
				}
			}
		}
		private void WriteToInternal(SqlWriter writer, string command) {
			WriteCommentsTo(writer);
			writer.WriteKeyword(command);
			writer.WriteKeyword(" VIEW ");
			writer.WriteScript(viewName, WhitespacePadding.None);
			if (columnNames.Count > 0) {
				writer.Write(" (");
				writer.WriteScriptSequence(columnNames, WhitespacePadding.None, w => w.Write(", "));
				writer.Write(')');
			}
			writer.WriteScript(viewOption, WhitespacePadding.SpaceBefore);
			writer.WriteKeyword(" AS");
			writer.WriteLine();
			using (writer.Indent()) {
				writer.WriteScript(selectStatement, WhitespacePadding.None);
				if (withCheckOption) {
					writer.WriteKeyword(" WITH CHECK OPTION");
				}
			}
		}
		public override void WriteTo(SqlWriter writer) {
			base.WriteTo(writer);
			writer.Write('(');
			writer.WriteScriptSequence(columnNames, WhitespacePadding.None, w => w.Write(", "));
			writer.Write(')');
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("CREATE ");
			if (unique) {
				writer.WriteKeyword("UNIQUE ");
			}
			writer.WriteEnum(clustered, WhitespacePadding.SpaceAfter);
			writer.WriteKeyword("INDEX ");
			writer.WriteScript(IndexName, WhitespacePadding.None);
			writer.WriteKeyword(" ON ");
			writer.WriteScript(TableName, WhitespacePadding.None);
			writer.Write(" (");
			using (writer.Indent()) {
				writer.WriteScriptSequence(indexColumns, WhitespacePadding.NewlineBefore, w => w.Write(", "));
			}
			writer.WriteLine();
			writer.Write(')');
			if (includeColumnNames.Count > 0) {
				writer.WriteKeyword(" INCLUDE ");
				writer.Write('(');
				using (writer.Indent()) {
					writer.WriteScriptSequence(includeColumnNames, WhitespacePadding.NewlineBefore, w => w.Write(", "));
				}
				writer.WriteLine();
				writer.Write(')');
			}
			WhitespacePadding optionsPadding = WhitespacePadding.SpaceBefore;
			if ((filter != null) && writer.IsAtLeast(DatabaseEngine.SqlServer2008)) {
				writer.WriteLine();
				writer.WriteKeyword("WHERE ");
				using (writer.Indent()) {
					writer.WriteScript(filter, WhitespacePadding.None, null, null);
				}
				optionsPadding = WhitespacePadding.NewlineBefore;
			}
			writer.WriteScript(IndexOptions, optionsPadding);
		}
		protected override void WriteToInternal(SqlWriter writer) {
			writer.WriteScriptSequence(columns, WhitespacePadding.None, w => w.Write(", "));
		}
		public override void WriteTo(SqlWriter writer) {
			WriteCommentsTo(writer);
			writer.WriteKeyword("UPDATE SET ");
			writer.WriteScriptSequence(updateItems, WhitespacePadding.None, w => w.Write(", "));
		}
Пример #30
0
		internal void WriteToWithoutSelect(SqlWriter writer) {
			writer.WriteDuplicateRestriction(restriction, WhitespacePadding.SpaceAfter);
			writer.WriteScript(top, WhitespacePadding.SpaceAfter);
			using (writer.Indent()) {
				writer.WriteScriptSequence(columnItems, WhitespacePadding.None, w => w.Write(", "));
			}
			writer.WriteScript(intoClause, WhitespacePadding.NewlineBefore, w => w.WriteKeyword("INTO "), null);
			WriteToInternal(writer);
			writer.WriteScript(forClause, WhitespacePadding.SpaceBefore);
			writer.WriteScript(unionClause, WhitespacePadding.NewlineBefore);
		}