Por que minha restrição exclusiva aparecer em índices em vez sob restrições?

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

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu criei uma restrição na minha mesa tsql assim:

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

MSSMStudio a restrição aparece sob índices em vez de sob constrangimentos.

Por quê?

- EDIT--
Eu entendo que ele cria um índice para impor a restrição, mas então porque é que há um nó chamado "restrições"?

Foi útil?

Solução

SQL Server cria um índice por trás da cena para impor a restrição

aqui é uma outra maneira de escrever que, adicionando servidor sem cluster revelador sql usar um índice sem cluster, você também pode criar um cluster no fornecimento de que você não tem um PK que está em cluster (o padrão) ou outro índice agrupado já

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

[editar] esse nó é adicionar verificação de restrição, restrições exclusivas são adicionados sob índices

De qualquer maneira estadia longe de assistentes

Outras dicas

Verifique limitações e restrições padrão são mostrados sob o nó restrições.

SQL utiliza índices para impor restrições exclusivas.

Eu entendo que ele cria um índice para impor a restrição, mas então porque é que há um nó chamado "restrições"?

Este nó é a limitações de exibição CHECK.

A verdadeira resposta é "porque a Microsoft disse que sim. Se você quer a resposta, você vai ter que perguntar a eles".

Porque restrições UNIQUE podem ser encontrados em vista de sistema sysindexes

SELECT * FROM sysindexes onde name = 'uc_uIdQualCode'

É simplesmente lógico Para adicionar um novo constrangimento exclusivo do Studio você precisa clicar em Gerenciar botão índice e chaves. Então, se você está adicionando-lo de índices, você tem que vê-lo em Indexes:)

Eu estou pensando que talvez você não entender o que pode aparecer em restrições becasue você não sabe o que é uma restrição de verificação é. Uma restrição de verificação irá verificar os dados sobre inserção ou atualização para ver se ele atende algum tipo de regra de negócio. Ele é usado para garantir a integridade dos dados. Por exemplo, se você tem um campo inteiro que só deve conter os valores de 1,4 ou 5, em seguida, você iria configurar uma restrição de verificação para certificar-se que 9 não é sempre adicionado ao campo. Uma restrição de verificação em campo de data pode especificar que ele deve ser posterior à data atual e tempo para um campo que é o PlannedCompletionDate ou que CompletionDate deve ser posterior a StartDate. Estes são o tipo de coisas que aparecem sob restrições.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top