Perché il mio vincolo unico viene visualizzato sotto gli indici piuttosto che sotto i vincoli?

StackOverflow https://stackoverflow.com/questions/1012969

  •  06-07-2019
  •  | 
  •  

Domanda

Ho creato un vincolo sulla mia tabella tsql in questo modo:

alter table disabledqualities
add constraint uc_uIdQualCode
unique (userId, qualitycode)

In MSSMStudio il vincolo appare sotto gli indici piuttosto che sotto i vincoli.

Perché?

- EDIT--
Comprendo che crea un indice per imporre il vincolo, ma allora perché esiste un nodo chiamato "quotazioni"?

È stato utile?

Soluzione

SQL Server crea un indice dietro la scena per imporre il vincolo

ecco un altro modo di scrivere che aggiungendo un server sql non cluster per indicare un indice non cluster, è anche possibile creare un cluster purché non si disponga di un PK cluster (impostazione predefinita) o di un altro indice cluster

alter table disabledqualities
add constraint uc_uIdQualCode
unique nonclustered (userId, qualitycode)

[modifica] quel nodo deve aggiungere un vincolo di controllo, vincoli univoci vengono aggiunti sotto gli indici

in entrambi i casi stai lontano dai maghi

Altri suggerimenti

Controllare i vincoli e i vincoli predefiniti sono visualizzati nel nodo Vincoli.

SQL utilizza gli indici per applicare vincoli univoci.

  

Comprendo che crea un indice per imporre il vincolo, ma allora perché esiste un nodo chiamato "quotazioni" & <;

Questo nodo deve visualizzare i vincoli CHECK .

La vera risposta è " perché lo ha detto Microsoft. Se vuoi la risposta, dovrai chiedere loro " ;.

Perché i vincoli UNIQUE possono essere trovati nella vista del sistema sysindexes

seleziona * da sysindexes dove name = 'uc_uIdQualCode'

È semplicemente logico Per aggiungere un nuovo numero unico di Studio devi fare clic sul pulsante Gestisci indice e chiavi. Quindi, se lo stai aggiungendo dagli indici, devi vederlo negli indici :)

Penso che forse non capisci cosa potrebbe apparire nei vincoli perché non sai cos'è un vincolo di controllo. Un vincolo di controllo controllerà i dati durante l'inserimento o l'aggiornamento per vedere se soddisfa una sorta di regola aziendale. Viene utilizzato per garantire l'integrità dei dati. Ad esempio, se si dispone di un campo intero che dovrebbe contenere solo i valori di 1,4 o 5, è necessario impostare un vincolo di controllo per assicurarsi che 9 non venga mai aggiunto al campo. Un campo di controllo sulla data potrebbe specificare che deve essere successiva alla data e all'ora correnti per un campo che è PlannedCompletionDate o che CompletionDate deve essere successiva a StartDate. Questo è il tipo di cose che si presentano sotto vincoli.

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