/// <inheritdoc /> protected override void Generate(DropIndexOperation operation, IModel model, MigrationCommandListBuilder builder, bool terminate) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (operation.IfNotExistsCheckRequired()) { throw new InvalidOperationException($"The check '{nameof(SqlServerOperationBuilderExtensions.IfNotExists)}()' is not allowed with '{operation.GetType().Name}'"); } if (!operation.IfExistsCheckRequired()) { base.Generate(operation, model, builder, terminate); return; } builder.AppendLine($"IF(IndexProperty(OBJECT_ID('{DelimitIdentifier(operation.Table, operation.Schema)}'), {GenerateSqlLiteral(operation.Name)}, 'IndexId') IS NOT NULL)") .AppendLine("BEGIN"); using (builder.Indent()) { base.Generate(operation, model, builder, false); builder.AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator); } builder.AppendLine("END"); if (terminate) { builder.EndCommand(); } }
/// <inheritdoc /> protected override void Generate(DropIndexOperation operation, IModel model, MigrationCommandListBuilder builder) { if (!operation.IfExistsCheckRequired()) { base.Generate(operation, model, builder); return; } builder.AppendLine($"IF(IndexProperty(OBJECT_ID('{DelimitIdentifier(operation.Table, operation.Schema)}'), {GenerateSqlLiteral(operation.Name)}, 'IndexId') IS NOT NULL)") .AppendLine("BEGIN"); using (builder.Indent()) { base.Generate(operation, model, builder, false); builder.AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator); } builder.AppendLine("END") .EndCommand(); }