FluentMigrator是否支持创建过滤索引?

时间:2013-04-19 08:39:25

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

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

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

1 个答案:

答案 0 :(得分:6)

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

相关问题