8

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

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

4

1 回答 1

10

由于这是一个非常特定于 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 的东西。

于 2013-04-23T19:01:19.897 回答