PDA

Ver la Versión Completa : Campos calculados


SaurioNet
20-01-2005, 13:10:54
Hola:

¿Es posible crear en sqlserver 2000, un campo de tipo clave principal que almacene el resultado del cálculo de otro campo de la misma tabla?

¿Cómo, podeis poner un pequeño ejemplo?

Gracias

__hector
20-01-2005, 14:07:50
Calculo numerico? No creo, pensando en el dise~o de la base de datos y que, el valor del campo calculado dependera del calculo de otros campos, no existe ninguna garantia de que el contenido de dicho campo obtenido de la operacion sea unico. Es por eso que me parece dificil

SaurioNet
20-01-2005, 18:26:07
Gracias Hector:

Lo que pretendo es una mini aplicación de contabilidad con la siguiente distribución:

Tabla A
-------
cuenta_id = 1000
descripción

Tabla B
-------
cuenta_id = 1000
Subcuenta_id = 1010 .. 1020 .. 1030

La tabla B representa en el campo Subcuenta_id un valor resultado de sumar a cuenta_id un valor de incremento que en ningún caso puede provocar un incremento en la unidad de millar ya que implica un cambio de cuenta_id

Saludos

__hector
20-01-2005, 19:16:54
que tal un trigger?

ISKANDAR
21-01-2005, 23:47:38
Por tu ejemplo, parece que estás intentando hacer un plan de cuentas, verdad?
Te recomendaría que utilices para el campo clave datos del tipo char o varchar, y hagas la codificación de nuevas cuentas en el plan, por código (valga la redundancia), pues aunque lleve más procesamiento, sólo se ejecuta intensamente durante la puesta en marcha del sistema, al crear las cuentas. Después la creación de nuevas cuentas o su recodificación son más esporádicas.
Por ejemplo podrías utilizar un formato como éste...
1000000000 ACTIVO
1001000000 Activo Corriente
1001001000 Caja y Bancos
1001001001 Caja
1001001002 Banco XX
1001001003 etc...
... con un número fijo de caracteres para cada nivel de la jerarquía de cuentas.