none
errore in creazione constraint RRS feed

  • Domanda

  • Buongiorno a tutti,
    sto facendo qualche test sull'utilizzo delle constraint e mi sono creato 2 tabelle di prova, ma ricevo l'errore seguente:

    La tabella con riferimenti 'dbo.TABT' non contiene chiavi primarie o candidate corrispondenti all'elenco delle colonne di riferimento nella chiave esterna 'REL_TABR_TABT'

    Questo è il codice che utilizzo:

    --------------------------------------------------------
    -- TESTATA
    --------------------------------------------------------
    CREATE TABLE [dbo].[TABT]
    (
        [ID] [int] IDENTITY(1,1) NOT NULL,
    	[CodProdotto] [varchar] (20) NULL,
    	[Attivo] [char](1) NOT NULL CONSTRAINT [DF_TABT_Attivo] DEFAULT('S'),
    	[Qta] decimal(10,2) NOT NULL CONSTRAINT [DF_TABT_Qta] DEFAULT (0),
    	[Prz] decimal(10,2) NOT NULL CONSTRAINT [DF_TABT_Prz] DEFAULT (0),
        [DataModifica] [datetime] NULL,	
    	[DataCreazione] [datetime] NULL CONSTRAINT [DF_TABT_DataCreazione] DEFAULT (getdate()),
     CONSTRAINT [TABT01] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY];
    GO
    
    
    CREATE INDEX [TABT02] ON [dbo].[TABT]
    (
    	[CodProdotto] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    GO
    
    --------------------------------------------------------
    -- RIGHE
    --------------------------------------------------------
    CREATE TABLE [dbo].[TABR]
    (
        [Codice] [varchar] (20) NOT NULL,
    	[Descrizione] [varchar] (50) NOT NULL CONSTRAINT [DF_TABR_Descrizione] DEFAULT(''),
    	[DataModifica] [datetime] NULL,	
    	[DataCreazione] [datetime] NULL CONSTRAINT [DF_TABR_DataCreazione] DEFAULT (getdate()) 
    	
    	CONSTRAINT [TABR01] PRIMARY KEY CLUSTERED 
    (
    	[Codice] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY];
    GO
    
    ALTER TABLE [dbo].[TABR] WITH CHECK ADD CONSTRAINT [REL_TABR_TABT] FOREIGN KEY([Codice])
    REFERENCES [dbo].[TABT] ([CodProdotto])
    
    

    Dove sbaglio?

    Grazie 1000.

    Ciao

    Beppe

    venerdì 28 settembre 2018 06:22

Risposte

Tutte le risposte

  • Ciao Friariello,
    grazie per la risposta.
    Solo che a me quell'indice serve possa essere duplicato (l'indice univoco di TABT è la colonna ID).
    Il mio obiettivo era rendere impossibile l'inserimento in TABT di righe che riportassero un CodProdotto non codificato in TABR. Non è possibile?
    Grazie ancora e buona domenica.

    Beppe

    domenica 30 settembre 2018 07:05
  • Ok, grazie alle tue indicazioni ho fatto un passo avanti.

    Domani rivedo il tutto con calma e ti aggiorno.

    Grazie per le indicazioni che mi hai dato.

    ciao

    Beppe

    domenica 30 settembre 2018 13:04
  • Ciao Friariello,
    rivisto il tutto, è esattamente ciò che mi serviva!
    Grazie 1000.

    Buona giornata.

    Beppe

    lunedì 1 ottobre 2018 10:14