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