Si vous avez vraiment besoin d' A_or_B_ID
dans TableZ, vous avez deux options:
1) Ajouter nullable A_ID
et B_ID
colonnes au tableau z, faire A_or_B_ID
une colonne calculée à l'aide de la fonction ISNULL sur ces deux colonnes, et d'ajouter une contrainte de VÉRIFICATION telle que seul l'un d' A_ID
ou B_ID
n'est pas null
2) Ajouter une colonne nom de la table à la table z, limitées pour contenir Un ou B. maintenant, créez A_ID
et B_ID
comme des colonnes calculées, qui ne sont que des non-null lorsque leur table est nommée (à l'aide de CAS de l'expression). Les rendre persistantes trop
Dans les deux cas, vous disposez maintenant d' A_ID
et B_ID
colonnes qui peuvent avoir étrangères
touches pour les tables de base. La différence est dans les colonnes calculées. Aussi, vous
n'avez pas besoin de nom de la table dans l'option 2 ci-dessus si les domaines de la 2 ID colonnes ne pas
se chevaucher aussi longtemps que votre cas l'expression peut déterminer le domaine qui A_or_B_ID
tombe dans
(Merci de commenter pour la fixation de ma mise en forme)