2012-01-03 19 views
6

Ho una tabella partizionata da TRANSACTION_DATE_TIME.Partizionamento SQL Server - Errore indice univoco

La tabella ha una colonna: ID.

voglio creare un indice univoco per l'ID su schema di partizione come:

CREATE UNIQUE NONCLUSTERED INDEX [IX_ID_ON_PS_DATETIME] ON [CRD].[TRANSACTION] 
(
    [ID] ASC 
) ON [PS_DATETIME_WEEKLY]([TRANSACTION_DATE_TIME]) 

ma SQL dice "colonna di partizione per un indice univoco deve essere un sottoinsieme di chiave di indice".

Non ho davvero bisogno della colonna TRANSACTION_DATE_TIME in questo indice.

Come posso creare l'indice senza utilizzare la colonna TRANSACTION_DATE_TIME?

risposta

8

Oppure è creare NON indice -partitioned, oppure si AVERE per includere la chiave di partizionamento in indice partizionato in questo modo:

indice partizionato

CREATE UNIQUE NONCLUSTERED INDEX [IX_ID_ON_PS_DATETIME] ON [CRD].[TRANSACTION] 
(
    [ID] ASC, 
    TRANSACTION_DATE_TIME 
) ON [PS_DATETIME_WEEKLY]([TRANSACTION_DATE_TIME]) 

O

Indice non partizionato

CREATE UNIQUE NONCLUSTERED INDEX [IX_ID_ON_PS_DATETIME] ON [CRD].[TRANSACTION] 
(
    [ID] ASC 
) ON PRIMARY 
0

Dalla pagina TechNet Microsoft

Quando partizionamento di un indice univoco (cluster o non cluster), la colonna di partizionamento devono essere scelti tra quelli utilizzati nella chiave indice univoco. Se non è possibile che la colonna di partizionamento sia inclusa nella chiave univoca, è necessario utilizzare un trigger DML invece di applicare l'univocità a .

Quindi, per implementare una soluzione è possibile controllare questo link out ... Una soluzione dal blog e un altro nei commenti

Dealing with Unique Columns when Using Table Partitioning

Problemi correlati