Eu tenho um requisito comercial para ter um campo FK na TableA
referência TableB
. Se houver um valor em TableBID
, ele deve ser único, mas não é obrigatório, portanto pode haver vários registros com valores nulos.
É possível, de alguma forma, impor esse tipo de exclusividade no nível do banco de dados, usando um índice ou uma restrição?
Você pode criar um índice filtrado exclusivo conforme abaixo.
Para versões do SQL Server anteriores ao suporte de índice filtrado (antes de 2008), consulte esta pergunta relacionada .