【问题标题】:Does FluentMigrator support creating a filtered index?FluentMigrator 是否支持创建过滤索引?
【发布时间】:2013-04-12 14:37:02
【问题描述】:

是否可以使用 FluentMigrator 创建filtered index?场景是我想在可能包含 NULL 的列上创建唯一索引,因此过滤器应排除索引列的 NULL 行。

我在 SQL Server 2012 中修改了 FluentMigrator 生成的索引以使用这样的过滤器,并且可以确认它运行良好,所以剩下的难题是生成这个选项。

【问题讨论】:

    标签: sql-server indexing sql-server-2012 fluent-migrator


    【解决方案1】:

    由于这是一个非常特定于 Sql Server 的功能,您不妨回退到 sql。

    流畅风格的原因之一是它不是特定于数据库的,因此可以为不同的数据库类型运行相同的迁移。但是,如果您只打算使用 Sql Server 并想使用数据库特定的功能,那么 FluentMigrator 的优点在于它允许您执行 sql 语句。对于 FluentMigrator 中我们永远不会支持的高级内容以及存储过程中的更改,建议使用此方法。

    它只是:

    Execute.Sql(@"CREATE NONCLUSTERED INDEX FIBillOfMaterialsWithEndDate
        ON Production.BillOfMaterials (ComponentID, StartDate)
        WHERE EndDate IS NOT NULL;");
    

    Postgres 也有部分索引,所以这可能是我们将来会添加到 FluentMigrator 中的东西。

    【讨论】:

    • 还可以运行作为嵌入式资源或磁盘文件包含的脚本文件。检查Execute.EmbeddedScriptExecute.Script 方法。
    猜你喜欢
    • 2012-09-09
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2010-09-18
    • 1970-01-01
    • 2023-02-01
    • 2017-10-19
    相关资源
    最近更新 更多