Usuário com melhor resposta
Criar uma Entidade-Relacionamento que tem um relacionamento com outra Entidade-Relacionamento

Pergunta
-
Agradeço desde já a Ajuda !!!
Estou tentando criar esse Script de Bando de Dados SQL Server, mas quando executo acontece a seguinte mensagem de erro:
Msg 1776, Level 16, State 0, Line 161 Não existem chaves primárias ou candidatas na tabela de referência 'tblFornecedorInsumo' que correspondam à lista de colunas de referência na chave estrangeira 'FK_tblInsumosDaComposicao_tblFornecedorInsumo'.
Msg 1750, Level 16, State 1, Line 161 Não foi possível criar a restrição ou o índice. Consulte os erros anteriores.
OBS: "FK_tblInsumosDaComposicao_tblFornecedorInsumo" é o nome do relacionamento da tblInsumosDaComposicao.
Esse erros acontecem por causa do tipo de relacionamento na tabela tblInsumosDaComposicao que estou tentando Criar. Ela é uma tabela N:N que tenta criar relacionamento com uma tabela normal(tblComposicao) e uma tabela relacionamento N:N(tblFornecedorInsume -> que é o relacionamento da tblInsumo e a tblFornecedor onde seus atributos PK são também FK (IDInsumo e IDFornecedor)).
Abaixo o código que estou tentando executar para criação dessas tabelas:
CREATE TABLE tblInsumo ( IDInsumo INT IDENTITY(1,1) NOT NULL, Descricao VARCHAR(100) NOT NULL, Deletado BIT NOT NULL, CONSTRAINT PK_tblInsumo PRIMARY KEY (IDInsumo), ); GO CREATE TABLE tblFornecedor ( IDFornecedor INT IDENTITY(1,1) NOT NULL, NomeFantasia VARCHAR(150) NOT NULL, RazaoSocial VARCHAR(150) NOT NULL, FisicaJuridica BIT NOT NULL, CpfCnpj VARCHAR(14) NOT NULL, Deletado BIT NOT NULL, CONSTRAINT PK_tblFornecedor PRIMARY KEY (IDFornecedor) ); GO CREATE TABLE tblComposicao ( IDComposicao INT IDENTITY(1,1) NOT NULL, Descricao VARCHAR(150) NOT NULL, Total DECIMAL(18,2) NOT NULL, Deletado BIT NOT NULL, CONSTRAINT PK_tblComposicao PRIMARY KEY (IDComposicao), ); GO CREATE TABLE tblFornecedorInsumo ( IDInsumo INT NOT NULL, IDFornecedor INT NOT NULL, PrecoCusto DECIMAL(18,2) NOT NULL, MargemLucro DECIMAL(18,2) NOT NULL, PrecoVenda DECIMAL(18,2) NOT NULL, DataAtualizacao DATE NOT NULL, CONSTRAINT PK_tblForneceInsumo PRIMARY KEY (IDFornecedor, IDInsumo), CONSTRAINT FK_tblForneceInsumo_tblInsumo FOREIGN KEY(IDInsumo) REFERENCES tblInsumo(IDInsumo), CONSTRAINT FK_tblForneceInsumo_tblFornecedor FOREIGN KEY(IDFornecedor) REFERENCES tblFornecedor(IDFornecedor) ); GO ------Tabela que não é criada e gera as mensagens de erro------ CREATE TABLE tblInsumosDaComposicao ( IDComposicao INT NOT NULL, IDInsumo INT NOT NULL, IDFornecedor INT NOT NULL, Quantidade DECIMAL(18,2) NOT NULL, Total DECIMAL(18,2) NOT NULL, Deletado BIT NOT NULL, CONSTRAINT PK_tblInsumosDaComposicao PRIMARY KEY (IDComposicao, IDInsumo, IDFornecedor), CONSTRAINT FK_tblInsumosDaComposicao_tblComposicao FOREIGN KEY(IDComposicao) REFERENCES tblComposicao(IDComposicao), CONSTRAINT FK_tblInsumosDaComposicao_tblFornecedorInsumo FOREIGN KEY(IDInsumo, IDFornecedor) REFERENCES tblFornecedorInsumo(IDInsumo, IDFornecedor) ); GO
- Editado Alex Mantovani domingo, 21 de janeiro de 2018 01:48
Respostas
-
Deleted
- Marcado como Resposta Alex Mantovani terça-feira, 23 de janeiro de 2018 15:47
Todas as Respostas
-
Deleted
- Marcado como Resposta Alex Mantovani terça-feira, 23 de janeiro de 2018 15:47
-
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 23 de janeiro de 2018 17:37