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);
		}