Ir para conteúdo
Fórum Script Brasil
  • 0

Erro FK em no SQL SERVER


oldirty

Pergunta

Boa noite,

pessoal estou tendo uma dificuldade ao relacinar duas tabelas no SQL server, segue codigo e erro:

Um fornecedor pode ter varios endereços, mas um endereço pode ser de um fornecedor.

PKs viram FK na tabela endereço.

CREATE TABLE tblfornecedor

(

codfornecedor INT identity (1,1),

cnpj VARCHAR (20),

nomefantasia VARCHAR(50),

razaosocial VARCHAR (20),

PRIMARY KEY (codfornecedor,cnpj))

GO

CREATE TABLE enderecofornecedor

(

codendfornecedor INT,

codfornecedor int contraint codfornecedorFK REFERENCES tblfornecedor,

cnpj VARCHAR(20) CONSTRAINT cnpjFK REFERENCES tblfornecedor,

telefone VARCHAR(10) NOT NULL,

telefone2 VARCHAR(10),

ramal VARCHAR(10),

contato VARCHAR(30) NOT NULL,

cidade CHAR(10) NOT NULL,

estado CHAR(10) NOT NULL,

endereco VARCHAR(30) NOT NULL,

cep VARCHAR(13) NOT NULL,

PRIMARY KEY (codendfornecedor));

GO

Msg 1774, Level 16, State 0, Line 1

O número de colunas na lista de colunas de referência da chave externa 'codfornecedorFK' não corresponde às da chave primária na tabela de referência 'tblfornecedor'.

Msg 1750, Level 16, State 0, Line 1

Não foi possível criar a restrição. Consulte os erros anteriores.

Eu consegui fazer da mesma forma com uma tabela veiculos vs marca vs modelo.

mas depois parou de funcionar e não estou entendo o porque da coisa..

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi,

você deve criar uma chave estrangeira composta por dois campos na tabela de endereços, pois a chave primária da tabela de fornecedores possui dois campos. Ficaria assim:

CREATE TABLE enderecofornecedor

(

codendfornecedor INT primary key,

codfornecedor int ,

cnpj VARCHAR(20),

telefone VARCHAR(10) NOT NULL,

telefone2 VARCHAR(10),

ramal VARCHAR(10),

contato VARCHAR(30) NOT NULL,

cidade CHAR(10) NOT NULL,

estado CHAR(10) NOT NULL,

endereco VARCHAR(30) NOT NULL,

cep VARCHAR(13) NOT NULL,

constraint codfornecedorFK fOREIGN KEY (codfornecedor, cnpj) REFERENCES tblfornecedor);

GO

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...