我们正在通过ActiveRecord的使用SchemaExport工具。缺省情况下它会产生像这样的表:

create table List (
  Id      UNIQUEIDENTIFIER   not null,
  Name    NVARCHAR(255)   null,
  OwnerId UNIQUEIDENTIFIER   null,
    primary key ( Id ))

然后SQL Server默认为增加一个簇索引的主键。但我想这是非聚集。我想一个聚集索引添加到OWNERID,因为这将是更有效的。

现在,我可以运行一个脚本后创建一个非聚集索引。这将包括降低原来的主键约束和添加非集群之一。然而,SchemaExport工具已经帮忙,创建了阻止我掉落的主键我所有的外键约束。

所以我需要删除外键,其中有像FK4BAD9607D2BEDDB5无益的名称,然后重新创建它们(我可以再次自动做到这一点?)。这一切都有点头痛。

这会如果我可以在那里得到某种方式,并添加非聚集规范的主键,因为它产生它是一个容易得多。有没有我可以重写做到这一点,导出工具的相关位?

由于

有帮助吗?

解决方案

我相信你最好的选择是使用SchemaExport为创建脚本,并手动修改它。

否则,你需要重写Dialect.GetAddPrimaryKeyConstraintString

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top