Pessoal, essa questão está totalmente errada, vejam o que diz o autor John J. Patrick em seu livro SQL Fundamentals third edition, a respeito das chaves primárias:
Há duas regras que regulam as colunas da chave primária de uma tabela:
1. Nenhuma das colunas da chave primária pode conter um valor nulo. este
faz sentido porque um nulo é um valor desconhecido. Portanto, um nulo em
qualquer parte da chave primária significa que não sabemos a identidade
do objeto ou a linha. Em bancos de dados, que não queremos para inserir informações
sobre linhas não identificadas.
2. Cada linha deve ter uma identidade que é diferente de todas as outras linhas
na tabela. Ou seja, não há duas linhas não podem ter a mesma identidade - a
mesmos valores em todas as colunas da chave primária. Para quaisquer duas linhas
da mesa, tem de haver pelo menos uma coluna da chave primária
em que os valores são diferentes.
Resumindo: Quando se define uma constraint do tipo primary key, se define também que aquele campo é UNIQUE, já um valor null é um valor desconhecido.
Não há como identificar se um campo null é unico.