Hacer INSERT a traves de una VIEW

03/09/2007 - 12:40 por Keyhelp | Informe spam
Hola a todos:

Tengo entendido que se puede hacer Insert a traves de una vista (view) pero
tiene sus restricciones.

Tenemos una tabla que uno de sus campos es un sumatorio de unos valores de
otra tabla. Vamos a sustituir esta tabla por una vista que apunte a una
segunda tabla, pero el campo de sumatorio será una función que hace la suma.
Para no cambiar en muchos sitios donde se graba este tabla en nuestra
aplicación, habiamos pensado en hacer una vista con el mismo nombre de la
tabla que tenia antes pero que el campo que era el sumatorio sea una llamada
a la funcion.

TABLA_ANTERIOR
campo1
campo2
campo3 > este es un valor que calculamos antes

TABLA_NUEVA
campo1
campo2

VISTA = TABLA_ANTERIOR
campo1
campo2
fn_suma_campo3 as campo3

Si hago un INSERT sobre TABLA_ANTERIOR me dá un error diciendo que no puede
hacer un insert pues tiene un campo constante.

¿Existe alguna forma de poder hacerlo? ¿Hay que definir la vista de alguna
forma?
Siempre será sobre una sola tabla

Gracias por adelantado.

Francisco López
Dpt. Desarrollo
Keyhelp, S.L.

http://www.keyhelp.net
 

Leer las respuestas

#1 Miguel Egea
03/09/2007 - 14:17 | Informe spam
¿por que no nos pasas la definición de las tablas y la vista tal y como la
tienes, así te damos la solución exacta.

"Keyhelp" wrote in message
news:
Hola a todos:

Tengo entendido que se puede hacer Insert a traves de una vista (view)
pero tiene sus restricciones.

Tenemos una tabla que uno de sus campos es un sumatorio de unos valores de
otra tabla. Vamos a sustituir esta tabla por una vista que apunte a una
segunda tabla, pero el campo de sumatorio será una función que hace la
suma.
Para no cambiar en muchos sitios donde se graba este tabla en nuestra
aplicación, habiamos pensado en hacer una vista con el mismo nombre de la
tabla que tenia antes pero que el campo que era el sumatorio sea una
llamada a la funcion.

TABLA_ANTERIOR
campo1
campo2
campo3 > este es un valor que calculamos antes

TABLA_NUEVA
campo1
campo2

VISTA = TABLA_ANTERIOR
campo1
campo2
fn_suma_campo3 as campo3

Si hago un INSERT sobre TABLA_ANTERIOR me dá un error diciendo que no
puede hacer un insert pues tiene un campo constante.

¿Existe alguna forma de poder hacerlo? ¿Hay que definir la vista de alguna
forma?
Siempre será sobre una sola tabla

Gracias por adelantado.

Francisco López
Dpt. Desarrollo
Keyhelp, S.L.

http://www.keyhelp.net

Preguntas similares