Por que minha restrição exclusiva aparecer em índices em vez sob restrições?
-
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"?
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.