Las restricciones de VERIFICACIÓN con UDF (que es la respuesta de Oded) no se escalan bien y tienen poca concurrencia. Mira estos:
- Las UDF escalares envueltas en restricciones CHECK son muy lentas y pueden fallar en las actualizaciones de varias filas
- Tony Rogerson
Entonces:
- crear una nueva tabla, digamos TableA2XY
- esto tiene el PK de TableA y una columna char(1) con un CHECK para permitir solo X o Y. Y también una restricción única en el PK de A.
- tableX y tableY tienen una nueva columna char(1) con una marca para permitir solo X o Y respectivamente
- tableX y tableY tienen su FK a TableA2XY en ambas columnas
Este es el enfoque de superclave o subtipo
- todo basado en DRI
- sin disparadores
- sin udfs con acceso a tablas en restricciones CHECK.