SQL - Vista replicada en tabla

 
Vista:
sin imagen de perfil
Val: 29
Ha aumentado su posición en 5 puestos en SQL (en relación al último mes)
Gráfica de SQL

Vista replicada en tabla

Publicado por Marc (12 intervenciones) el 05/03/2021 18:45:13
Hola a todos,

Os cuento el problema que tengo:
Tengo una BBDD que se usa para un software de presencia.
EDITO: Uso un SQL Server 15.0.2080
Total, que he tenido que hacer una vista para que pueda replicar todo lo de presencia a producción y así poder tenerlo ya que el software no me lo hacía por defecto.
Problema:
Ahora quiero desde el software añadir un registro nuevo de producción y me dice que no puedo porque afecta a una o varias tablas ya que es una vista a donde hace referencia.
¿Hay alguna manera de crear una tabla que haga referencia a una vista y automaticamente se actualizen las filas que se añadan en la tabla principal de PRESENCIA?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Vista replicada en tabla

Publicado por Isaias (1921 intervenciones) el 05/03/2021 20:53:13
La versión de tu SQL Server es 2019, las vistas son arreglos dinámicos de una o varias tablas y su función es "ocultar" informacion que no quieres que los que usan la vista la vean directamente hacia tus tablas, NO PUEDES hacer un INSERT en una vista, ya que tienes varias tablas asociadas, en todo caso, deberias crear un PROCEDIMIENTO que reciba los datos he insertarlos en la tabla correspondiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 5 puestos en SQL (en relación al último mes)
Gráfica de SQL

Vista replicada en tabla

Publicado por Marc (12 intervenciones) el 09/03/2021 10:25:13
Hola,

Gracias por la respuesta.
Ya he llegado a una respuesta aunque no sea la más óptima.
He echo un script que me crea una tabla a partir de la vista y me lo compara con la tabla para ver que valores tiene que introducir de nuevo:
1
2
3
4
5
6
7
8
USE database
GO
INSERT INTO tabla
SELECT *
FROM vista
EXCEPT
SELECT * FROM tabla
GO
Este script lo guardo como .sql y creo un .bat con el siguiente contenido que lo programo cada 5 minutos:
OSQL -E -i C:\Script.sql -o c:\salida.txt -n

Una vez echo esto, ya tengo lo que queria, cada 5 minutos tengo la vista replicada en una tabla y con los valores que yo necesitaba.
Aun así, si alguien sabe un método mucho más efectivo ( no me sirve Agente SQL Server ya que lo tengo desactivado ) que me lo diga y se lo agradeceré.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar