Eu tenho uma tabela que possui as seguintes definições de coluna:
ID (INT, PK)
Name (VarChar)
Active (Bit)
Bunch_of (Other_columns)
Pergunta: Quero ter uma Constraint em Name/Active
tal que só possamos ter 1 registro com dado Name
que seja Active
( Active
= 1), mas poderíamos ter muitos registros que tenham o mesmo Name
que seja Inactive
( Active
= 0). Isso é possível?
Eu tentei as restrições únicas normais, mas elas limitam o conjunto de dados para permitir apenas 1 registro com um dado Name
como Inactive
.
Para impor isso declarativamente em 2005, você pode usar uma exibição indexada.
Isso pode ser feito usando a restrição CHECK que executa a função. Não testei completamente, mas funcionou bem nos meus testes iniciais. Aqui está funcionando, por exemplo.
Criar a tabela :
Agora tente executar abaixo do insert.
Por favor, teste completamente antes de usar este método.
Nova Jersey