Tengo una tabla del producto con no nulo "cantidad" (decimal) y (int) columnas "status", y crea una vista en esta tabla con la siguiente expresión case:¿La vista SQL infiere la columna anulable de la tabla no nula?
SELECT P.ProductTypeId,
(CASE WHEN P.StatusId IN (5, 8) THEN 0 ELSE -P.Quantity END) AS Quantity,
...
FROM Product P
ProductTypeId es correcta inferido como no nulo. Sin embargo, la columna Cantidad de esta vista se deduce como anulable, aunque las columnas subyacentes no sean nulables. Esto no tiene ningún sentido para mí.
Podría usar ISNULL/COALESCE para proporcionar un valor predeterminado en este caso y forzar la no anulabilidad, pero no hay un valor predeterminado significativo, y esto no debería ocurrir en primer lugar por lo que entiendo. ¿Alguna idea de qué está pasando?
Y no hay manera de especificar que este caso de desbordamiento es imposible? – naasking