¿Por qué SQL Server no admite restricciones de clave externa en las vistas?

12

Sé que SQL Server no admite el uso de una vista como referencia para una restricción de clave externa, ¿hay alguna razón (es decir, algo que ver con el modelo relacional) este es el caso? Parece que sería útil ...

jmoreno
fuente
3
He hecho una pregunta relacionada (no el por qué, sino cómo se podría hacer de otras maneras): ¿Hay DBMS que permita una clave externa que haga referencia a una vista (y no solo tablas base)? Probablemente tenga que ver con la complejidad de implementar tal característica. El modelo relacional está bien con tal concepto.
ypercubeᵀᴹ

Respuestas:

13

No hay ningún problema fundamental al hacer esto, ya que las tablas y las vistas son variables de relación en el modelo relacional. Las restricciones de clave externa son solo una subclase particular de restricciones generales, que SQL estándar implementa usando, CREATE ASSERTIONpor lo que tampoco hay dificultad particular del lenguaje SQL.

De acuerdo con este elemento de Connect (ya no está disponible y no está archivado) es simplemente una cuestión de priorización. Si encuentra útil esta función, vote por el elemento y, en particular, agregue detalles de su caso de uso en los comentarios.

Paul White 9
fuente