Domanda

Stiamo usando SchemaExport via ActiveRecord. Per impostazione predefinita, genera una tabella come questa:

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

SQL Server allora il default è l'aggiunta di un indice cluster per la chiave primaria. Ma io voglio che questo sia non cluster. Voglio aggiungere un indice cluster per ownerid come questo sarà molto più efficiente.

Ora, ho potuto eseguire uno script in seguito per creare un indice non cluster. Ciò comporterebbe cadere il vincolo originale chiave primaria e aggiungendo una non cluster. Tuttavia, SchemaExport ha già utilmente realizzato tutti i miei vincoli di chiave esterna che mi fermano cadere la chiave primaria.

Così ho bisogno di cadere le chiavi esterne, che hanno un nome inutile come FK4BAD9607D2BEDDB5, poi ricrearli (posso farlo di nuovo automaticamente?). E 'tutto un po' di mal di testa.

Sarebbe molto più facile se solo potessi arrivare lì in qualche modo e aggiungere un non cluster specifica alla chiave primaria come si genera. C'è un po 'rilevante del strumento di esportazione posso ignorare per fare questo?

Grazie

È stato utile?

Soluzione

Credo che la soluzione migliore sta usando SchemaExport per creare lo script e modificare manualmente.

In caso contrario, avrete bisogno di esclusione Dialect.GetAddPrimaryKeyConstraintString.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top