>ora però mi da un'altro errore:
>La tabella con riferimenti 'ACQUISTI' non contiene chiavi primarie
>o candidate corrispondenti all'elenco delle colonne di riferimento
>nella chiave esterna 'FK__DETTAGLIO___ANNO__07020F21'.
>Messaggio 1750, livello 16, stato 0, riga 1
>Impossibile creare il vincolo. Vedere gli errori precedenti.
>e ora cos'è?
>aiuto!!!!!!!!
Stai referenziando la colonna ANNO della tabella ACQUISTI ma non è una PK.
Il problema lo risolveresti definendo un constraint di PK su tale colonna, ma mi sembra una str***ata
Chi ha definito la struttura di quelle tabelle?
EDIT: forse ho capito, stai definendo 2 FK invece che una sola sull'intera PK.
USE tempdb;
CREATE TABLE UTENTI(
USER_ID VARCHAR(8) NOT NULL PRIMARY KEY
);
CREATE TABLE ACQUISTI(
ANNO INT CHECK(ANNO>2008),
N_FATTURA INT,
DATA_ACQUISTO DATETIME NOT NULL,
TOTALE_IMPONIBILE DECIMAL(7,2) NOT NULL,
TOTALE_IVA DECIMAL(6,2) NOT NULL,
TOTALE_FATTURA DECIMAL(7,2) NOT NULL,
USER_ID VARCHAR(8),
FOREIGN KEY(USER_ID) REFERENCES UTENTI(USER_ID),
CONSTRAINT PK_ACQUISTI PRIMARY KEY (ANNO, N_FATTURA)
);
CREATE TABLE DETTAGLIO_ACQUISTI(
ID_ACQUISTO INT PRIMARY KEY,
ANNO INT CHECK(ANNO>2008),
N_FATTURA INT,
IMPORTO_UNITARIO DECIMAL(6,2),
IVA_PERCENTUALE DECIMAL(4,2),
SCONTO_PRECENTUALE DECIMAL(4,2),
TOT_IMPONIBILE DECIMAL(7,2),
TOT_IVA DECIMAL(6,2),
CONSTRAINT FK_DETTAGLIO_ACQUISTI_ACQUISTI FOREIGN KEY(ANNO, N_FATTURA)
REFERENCES ACQUISTI(ANNO, N_FATTURA)
);
DROP TABLE DETTAGLIO_ACQUISTI, ACQUISTI, UTENTI;
>grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org