Bueno Caral, lo que hace el
check es validar una condicion logica Check(<condicion>) y hasta antes de la versión 2.0 de Firebird si la condicion se evaluaba a NULL se tomaba como False pero a partir de esta (la 2.0) se evalua a True
Cita:
a CHECK is now passed if the condition resolves to NULL
|
, por lo cual es mejor asegurarse de que la <condicion> devuelva True o False y no NULL, digo por si las mosca no vaya a cambiar en el futuro!
.
La ventaja de la de la funcion IIF es que permite hacer validaciones anidadas mas complejas y mas entedibles que si la hicieramos sin ella, pero si no hay forma de utilizar IIF o algo similar tendre que hacerlo a mano.