Problema columna computada persisted

miércoles, 19 de mayo de 2010
Publicado por Ivan

En "el extraño caso" de hoy, està el de la columna computada persisted en SQL Server 2005. Cuenta la leyenda que luego de crear una columna computada persisted en SQL Server 2005, un informático se tuvo que enfrentar a problemas relativos a que no se pudieron realizar operaciones de update o insert sobre la tabla que tenìa asociada la columna computada, supuestamente porque los ANSI estaban mal definidos (ANSI_NULL, QUOTED_IDENTIFIER, ARITHABORT, entre otros).


Esto se debe a que las columnas computadas declaradas persisted permiten la indexación, al contrario de las no persisted, y como para indexar columnas computadas o vistas es necesario que los ANSI estèn ON, y estaban por defecto en la base de datos en OFF, entonces eso era lo que estaba provocando el problema.

Solución?. En realidad hay varias dependiendo de las condiciones. En mi caso particular decidí no hacerla persisted, por lo que entonces los ANSI ya no son exigidos, y todo funcionaría de maravillas. Y así fué, no hubieron mas errores en updates o inserts sobre la tabla.

Aprovecho de acotar que en realidad las columnas computadas son soportadas desde SQL Server 2000, pero en ese entonces no se soportaba la propiedad persisted, que fuè habilitada en SQL Server 2005 junto con la indexacion de vistas. A lo mejor por ahi va la cosa.

0 comentarios: