Je tente de créer une contrainte de clé étrangère composée d'une colonne int et d'une colonne datetime (toutes deux non nulles).Problème de clé étrangère SQL Server
Je reçois l'erreur "Il n'y a aucune clé primaire ou candidate dans la table référencée X qui correspond à la liste de colonnes de référence dans la clé étrangère FK".
Normalement, cette erreur signifie que la ou les colonnes de la table cible ne sont pas uniques. Cependant, c'est la clé primaire, donc c'est vraiment unique.
La table référencée par la clé étrangère est partitionnée sur plusieurs groupes de fichiers, tandis que la table sur laquelle la clé étrangère est créée réside sur le groupe de fichiers principal. Est-ce que ceci pourrait être le problème? Les datetimes peuvent-elles faire partie d'une clé étrangère?
Tableau X:
LineId (int not null) (PK)
CreatedAt (datetime not null) (PK)
Message (nvarchar(max))
userId (int not null)
Tableau Y:
LineId (int not null) (PK) (FK)
SId (int not null) (PK)
LineCreatedAt (datetime not null) (FK)
CreatedAt (datetime not null)
commande SQL:
ALTER TABLE Y
ADD CONSTRAINT [FK1]
FOREIGN KEY(LineId,LineCreatedAt)
REFERENCES X(LineId, CreatedAt)
Toutes les idées appréciées.
Merci
Est-il possible de nous montrer votre schéma de table? – Graviton
Je me demande si c'est parce que les index de la table X sont sur un schéma de partition alors que les Y de la table ne le sont pas? – Chris