Modificar relações de chave estrangeira

Aplica-se a: SQL Server 2016 (13.x) e posteriores Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Você pode modificar parte da chave estrangeira de uma relação no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Modificar a chave estrangeira de uma tabela altera as colunas que estão relacionadas às colunas na tabela de chaves primárias.

Neste tópico

Antes de começar

Limitações e Restrições

A nova coluna de chave estrangeira deve corresponder ao tipo de dados e ao tamanho da coluna de chave primária à qual está relacionada, com estas exceções:

  • Uma coluna char ou sysname pode estar relacionada a uma coluna varchar .

  • Uma coluna binary pode estar relacionada a uma coluna varbinary .

  • Um tipo de dados de alias pode estar relacionado ao seu tipo base.

Segurança

Permissões

Exige a permissão ALTER na tabela.

Como usar o SQL Server Management Studio.

Para modificar uma chave estrangeira

  1. No Pesquisador de Objetos, expanda a tabela com a chave estrangeira e expanda Chaves.

  2. Clique com o botão direito do mouse na chave estrangeira a ser modificada e selecione Modificar.

  3. Na caixa de diálogo Relações de Chaves Estrangeiras , você pode fazer as modificações a seguir.

    Relações Selecionadas
    Lista de relações existentes. Selecione uma relação para mostrar as propriedades na grade à direita. Se a lista estiver vazia, nenhuma relação foi definida para a tabela.

    Adicionar
    Crie uma nova relação. As Especificações de Tabelas e Colunas devem ser definidas antes de a relação tornar-se válida.

    Delete (excluir)
    Exclua a relação selecionada na lista de Relações Selecionadas . Para cancelar a adição de uma relação, use esse botão para remover a relação.

    Categoria Geral
    Expanda para mostrar Verificar Dados Existentes ao Criar ou Habilitar Novamente e Especificações de Tabelas e Colunas.

    Check Existing Data on Creation or Re-Enabling
    Verifique todos os dados anteriores existentes na tabela quando a restrição foi criada ou habilitada novamente, em relação à restrição.

    Categoria de Especificações de Tabelas e Colunas
    Expanda para mostrar quais colunas de quais tabelas atuam como a chave estrangeira e chave primária (ou exclusiva) na relação. Para editar ou definir esses valores, clique no botão de reticências (...) à direita do campo de propriedade.

    Tabela Base de Chaves Estrangeiras
    Mostra qual tabela contém a coluna que atua como uma chave estrangeira na relação selecionada.

    Colunas de Chave Estrangeira
    Mostra qual coluna atua como uma chave estrangeira na relação selecionada.

    Tabela Base de Chaves Primárias/Exclusivas
    Mostra qual tabela contém a coluna que atua como uma chave primária (ou exclusiva) na relação selecionada.

    Colunas de Chaves Primárias/Exclusivas
    Mostra qual coluna atua como uma chave primária (ou exclusiva) na relação selecionada.

    Categoria de identidade
    Expanda para mostrar os campos de propriedade para Nome e Descrição.

    Nome
    Mostra o nome da relação. Quando uma nova relação é criada, é determinado um nome padrão com base na tabela na janela ativa em Designer de Tabela. É possível alterar o nome a qualquer momento.

    Descrição
    Descreve a relação. Para redigir uma descrição mais detalhada, clique em Descrição e nas reticências (...) que aparecem à direita do campo de propriedade. Isso criará uma área maior para a redação do texto.

    Categoria do Designer de Tabelas
    Expanda para mostrar informações por Verificar Dados Existentes ao Criar ou Habilitar Novamente e Impor para Replicação.

    Impor para Replicação
    Indica se a restrição será imposta quando um agente de replicação realizar uma inserção, atualização ou exclusão na tabela.

    Impor Restrição de Chave Estrangeira
    Especifique se alterações são permitidas para dados das colunas na relação, caso as alterações invalidem a integridade da relação de chave estrangeira. Escolha Sim se não deseja permitir mudanças, e escolha Não se deseja permiti-las.

    Categoria de Especificação INSERT e UPDATE
    Expanda para mostrar informações pelo Excluir Regra e o Atualizar Regra para a relação.

    Excluir Regra
    Especifique o que acontece se um usuário tenta excluir uma linha com dados que é envolvida em uma relação de chave estrangeira:

    • Sem Ação Uma mensagem de erro avisa ao usuário que a exclusão não é permitida e o DELETE será revertido.

    • Cascata Exclui todas as linhas que contêm dados envolvidos na relação de chave estrangeira. Não especifique CASCADE se a tabela for incluída em uma publicação de mesclagem que usa registros lógicos.

    • Definir Nulo Definirá o valor como nulo se todas as colunas de chave estrangeira da tabela puderem aceitar valores nulos.

    • Definir Padrão Definirá o valor para o valor padrão definido para a coluna, se todas as colunas de chave estrangeira para a tabela possuírem padrões definidos.

    Atualizar Regra
    Especifique o que ocorre se um usuário tenta atualizar uma linha com dados que é envolvida em uma relação de chave estrangeira:

    • Sem Ação Uma mensagem de erro avisa ao usuário que a atualização não é permitida e o UPDATE será revertido.

    • Cascata Atualiza todas as linhas que contêm dados envolvidos na relação de chave estrangeira. Não especifique CASCADE se a tabela for incluída em uma publicação de mesclagem que usa registros lógicos.

    • Definir Nulo Definirá o valor como nulo se todas as colunas de chave estrangeira da tabela puderem aceitar valores nulos.

    • Definir Padrão Define o valor como o valor padrão que é definido para a coluna se todas as colunas de chave estrangeira para a tabela têm padrões definidos.

  4. No menu Arquivo, clique em Salvarnome da tabela.

Usando o Transact-SQL

Para modificar uma chave estrangeira

Para modificar uma restrição FOREIGN KEY usando o Transact-SQL, exclua primeiramente a FOREIGN KEY já existente e, em seguida, recrie-a com a nova definição. Para obter mais informações, consulte Delete Foreign Key Relationships e Create Foreign Key Relationships.