Array
(
)

FOREIGN KEY - Caminho em Cascata.

Maicon Tecnico
   - 18 mai 2016

Boa Tarde Galera.
Estou com um problema aqui. preciso que vocês me ajudam..
Criei essas tabelas no SQLServer 2008 e tive um problema na ultima Foreign key "FK_NOTAS_ITENS__DERIV" pois criei a Foreign Key "FK_EMPRESAS__NOTAS"
então deu conflito, precisava da ajuda de vocês. Segue as Tabelas a baixo.
--EMPRESAS
CREATE TABLE EMPRESAS
(COD_EMPRESA INTEGER NOT NULL,
DES_EMPRESA VARCHAR(20));
--PK_EMPRESAS
ALTER TABLE EMPRESAS ADD CONSTRAINT PK_EMPRESAS PRIMARY KEY (COD_EMPRESA);
--PRODUTOS
CREATE TABLE PRODUTOS
(COD_EMPRESA INTEGER NOT NULL,
COD_PRODUTO INTEGER NOT NULL);
--PK_PRODUTOS
ALTER TABLE PRODUTOS ADD CONSTRAINT PK_PRODUTOS PRIMARY KEY (COD_EMPRESA, COD_PRODUTO);
--FK_EMPRESAS
ALTER TABLE PRODUTOS ADD CONSTRAINT FK_EMPRESAS__PRODUTOS FOREIGN KEY (COD_EMPRESA)
REFERENCES EMPRESAS(COD_EMPRESA) ON UPDATE CASCADE;
--DERIVACOES
CREATE TABLE DERIVACOES
(COD_EMPRESA INTEGER NOT NULL,
COD_PRODUTO INTEGER NOT NULL,
COD_DERIVACAO INTEGER NOT NULL)
--PK_DERIVACOES
ALTER TABLE DERIVACOES ADD CONSTRAINT PK_DERIVACOES PRIMARY KEY (COD_EMPRESA,COD_PRODUTO,COD_DERIVACAO);
--FK_PRODUTOS
ALTER TABLE DERIVACOES ADD CONSTRAINT FK_PRODUTOS__DERIVACOES FOREIGN KEY (COD_EMPRESA,COD_PRODUTO)
REFERENCES PRODUTOS(COD_EMPRESA,COD_PRODUTO) ON UPDATE CASCADE;
--NOTAS
CREATE TABLE NOTAS
(COD_EMPRESA INTEGER NOT NULL,
NUM_NOTA INTEGER NOT NULL,
COD_SERIE INTEGER NOT NULL)
--PK_NOTAS
ALTER TABLE NOTAS ADD CONSTRAINT PK_NOTAS PRIMARY KEY (COD_EMPRESA,NUM_NOTA,COD_SERIE);
--FK_NOTAS
ALTER TABLE NOTAS ADD CONSTRAINT FK_EMPRESAS__NOTAS FOREIGN KEY (COD_EMPRESA)
REFERENCES EMPRESAS(COD_EMPRESA) ON UPDATE CASCADE;
--NOTAS_ITENS
CREATE TABLE NOTAS_ITENS
(COD_EMPRESA INTEGER NOT NULL,
NUM_NOTA INTEGER NOT NULL,
COD_SERIE INTEGER NOT NULL,
SEQ_ITEM INTEGER NOT NULL,
COD_PRODUTO INTEGER,
COD_DERIVACAO INTEGER)
--PK_NOTAS_ITENS
ALTER TABLE NOTAS_ITENS ADD CONSTRAINT PK_NOTAS_ITENS PRIMARY KEY (COD_EMPRESA,NUM_NOTA,COD_SERIE,SEQ_ITEM);
--FK_NOTAS_ITENS
ALTER TABLE NOTAS_ITENS ADD CONSTRAINT FK_NOTAS_ITENS__NOTAS FOREIGN KEY (COD_EMPRESA,NUM_NOTA,COD_SERIE)
REFERENCES NOTAS(COD_EMPRESA,NUM_NOTA,COD_SERIE) ON UPDATE CASCADE;
ALTER TABLE NOTAS_ITENS ADD CONSTRAINT FK_NOTAS_ITENS__DERIV FOREIGN KEY (COD_EMPRESA,COD_PRODUTO,COD_DERIVACAO)
REFERENCES DERIVACOES(COD_EMPRESA, COD_PRODUTO, COD_DERIVACAO) ON UPDATE CASCADE;