SQL posso ter uma restrição "condicionalmente exclusiva" em uma tabela?

Isso aconteceu algumas vezes na minha carreira, e nenhum dos meus colegas locais parece capaz de responder. Digamos que eu tenha uma tabela que tenha um campo "Descrição", que é uma chave candidata, exceto que, às vezes, um usuário para na metade do processo. Portanto, talvez para 25% dos registros esse valor seja nulo, mas para todos os que não são NULL, ele deve ser exclusivo.

Outro exemplo pode ser uma tabela que deve manter várias "versões" de um registro e um valor de bit indica qual é a "ativa". Portanto, a "chave candidata" é sempre preenchida, mas pode haver três versões idênticas (com 0 no bit ativo) e apenas uma que esteja ativa (1 no bit ativo).

Eu tenho métodos alternativos para resolver esses problemas (no primeiro caso, imponha o código de regra, no procedimento armazenado ou na camada de negócios, e no segundo, preencha uma tabela de archive com um gatilho e UNION as tabelas quando eu precisar de um histórico) . Não quero alternativas (a menos que haja soluções comprovadamente melhores); estou apenas imaginando se algum sabor do SQL pode expressar "exclusividade condicional" dessa maneira. Estou usando o MS SQL, por isso, se houver uma maneira de fazer isso, ótimo. Estou principalmente academicamente interessado no problema.

questionAnswers(5)

yourAnswerToTheQuestion