Compartilhar via


Criando e modificando restrições PRIMARY KEY

Você pode criar uma única restrição FOREIGN KEY como parte da definição de tabela quando uma tabela é criada. Se já houver uma tabela, você poderá adicionar a restrição PRIMARY KEY desde que ainda não exista outra restrição PRIMARY KEY. Uma tabela pode ter apenas uma restrição PRIMARY KEY.

Se já houver uma restrição PRIMARY KEY, você poderá modificá-la ou excluí-la. Por exemplo, talvez você queira que a restrição PRIMARY KEY da tabela faça referência a outras colunas ou talvez deseje alterar a ordem das colunas, o nome do índice, a opção clusterizada ou o fator de preenchimento da restrição ao tipo de clusterização do índice. No entanto, não é possível alterar o comprimento de uma coluna definida com uma restrição PRIMARY KEY.

ObservaçãoObservação

Para modificar uma restrição PRIMARY KEY, primeiro exclua a PRIMARY KEY já existente e, em seguida, recrie essa restrição com a nova definição.

Quando uma restrição PRIMARY KEY é adicionada a uma ou mais colunas existentes na tabela, o Mecanismo de Banco de Dados examina os metadados e os dados das colunas existentes para se certificar de que o seguinte seja estabelecido para chaves primárias:

  • As colunas não podem permitir valores nulos.

    Colunas de restrições PRIMARY KEY especificadas na criação de uma tabela são convertidas implicitamente em NOT NULL. Não é possível usar uma coluna esparsa como parte de uma chave primária, pois esse tipo de coluna deve permitir valores nulos.

  • Não pode haver valores duplicados.

    Se uma restrição PRIMARY KEY for adicionada a uma coluna que tem valores duplicados ou permite valores nulos, o Mecanismo de Banco de Dados retornará um erro e não adicionará a restrição.

Não é possível adicionar uma restrição PRIMARY KEY que viole essas regras.

O Mecanismo de Banco de Dados cria automaticamente um índice exclusivo para impor o requisito de exclusividade da restrição PRIMARY KEY. Se ainda não houver um índice clusterizado na tabela ou se um índice não clusterizado não for especificado explicitamente, será criado um índice clusterizado exclusivo para impor a restrição PRIMARY KEY.

Uma restrição PRIMARY KEY não poderá ser excluída nas seguintes condições:

  • Se ela for referenciada por uma restrição FOREIGN KEY de outra tabela; a restrição FOREIGN KEY deverá ser excluída primeiro.

  • A tabela tem um índice PRIMARY XML aplicado a ela.

Para criar uma restrição PRIMARY KEY quando você cria uma tabela

Para criar ou excluir uma restrição PRIMARY KEY em uma tabela existente

Para obter informações sobre restrições FOREIGN KEY

Consulte também

Conceitos