Tengo el siguiente problema, tras una migración de una base de datos access a SQL server 2005 a la cual se accede desde una aplicación en VB me ha dejado de funcionar una ficha que hace una insercion de datos en una vista que mete datos en dos tablas, en access funcionaba perfecto y ahora en sql server ya no funciona, he leido que esto se soluciona con creando un TRIGGER con INSTEAD OF lo estoy intentando y no soy capaz de que funcione y me juego mi puesto de trabajo, alguien me puede ayudar??
aqui pego la consulta que en access si funcionaba:
Código:
SELECT ListadoMateriales.IdObra_LM, ListadoMateriales.IdLinea_LM, ListadoMateriales.Recibido_LM, ListadoMateriales.DetallesParaPedido_LM, ListadoMateriales.IdPedido_LM, ListadoMateriales.Verificado_LM, Materiales.IdMaterial, ListadoMateriales.Estado_LM, Materiales.Proveedor_Material, Materiales.ReferenciaProveedor_Material, Materiales.Descripcion_Material, Materiales.EnAlmacen_Material, ListadoMateriales.CantidadAPedir_LM, ListadoMateriales.CantidadNecesaria_LM, Materiales.PlazoEntrega_Material, ListadoMateriales.Detalles_LM, ListadoMateriales.Proveedor_LM, ListadoMateriales.Descripcion_LM, ListadoMateriales.AnchoProducto_LM, ListadoMateriales.AltoProducto_LM, ListadoMateriales.EspesorProducto_LM, ListadoMateriales.LargoProducto_LM, ListadoMateriales.Recibido_LM, ListadoMateriales.Verificado_LM, ListadoMateriales.Estado_LM, ListadoMateriales.Color_LM, Materiales.Detalles_Material, ListadoMateriales.Tratamiento_LM, Materiales.UnidadVenta_Material, Materiales.UnidadesUnidadVenta_Material, Materiales.TipoMaterial_Material, Materiales.PerfilOAccesorio_Material, IIf(Int([CantidadAPedir_LM]/[UnidadVenta_material])=[CantidadAPedir_LM]/[UnidadVenta_material],Int([CantidadAPedir_LM]/[UnidadVenta_material]),Int([CantidadAPedir_LM]/[UnidadVenta_material])+1) AS UV_a_Pedir, ListadoMateriales.Estado_LM, ListadoMateriales.Etiquetado_LM, ListadoMateriales.DetallesParaPedido_LM, ListadoMateriales.Etiquetado_LM, Materiales.PerfilOAccesorio_Material, ListadoMateriales.EstadoTratamiento_LM, Materiales.PerimetroExterior_Material, Materiales.PerimetroInterior_Material, Materiales.CaraVista_Material, ListadoMateriales.PerimetroInterior_LM, ListadoMateriales.PerimetroExterior_LM, ListadoMateriales.CaraVista_LM, ListadoMateriales.UnidadesUnidadVenta_LM, ListadoMateriales.CantidadEnTaller_LM, ListadoMateriales.CantidadEnObra_LM, ListadoMateriales.CantidadPendiente_LM, ListadoMateriales.CantidadPreparada_LM, ListadoMateriales.CantidadDudosa_LM, ListadoMateriales.CantidadRechazada_LM, ListadoMateriales.CantidadRecibida_LM FROM Materiales INNER JOIN ListadoMateriales ON Materiales.IdMaterial = ListadoMateriales.IdMaterial_LM ORDER BY ListadoMateriales.IdObra_LM, ListadoMateriales.IdLinea_LM;
y esta es la vista en SQL Server:
Código:
SELECT TOP (2147483647) WITH TIES dbo.ListadoMateriales.IdObra_LM, dbo.ListadoMateriales.IdLinea_LM, dbo.ListadoMateriales.IdPedido_LM, dbo.Materiales.IdMaterial, dbo.Materiales.Proveedor_Material, dbo.Materiales.ReferenciaProveedor_Material, dbo.Materiales.Descripcion_Material, dbo.Materiales.EnAlmacen_Material, dbo.ListadoMateriales.CantidadAPedir_LM, dbo.ListadoMateriales.CantidadNecesaria_LM, dbo.Materiales.PlazoEntrega_Material, dbo.ListadoMateriales.Detalles_LM, dbo.ListadoMateriales.Proveedor_LM, dbo.ListadoMateriales.Descripcion_LM, dbo.ListadoMateriales.AnchoProducto_LM, dbo.ListadoMateriales.AltoProducto_LM, dbo.ListadoMateriales.EspesorProducto_LM, dbo.ListadoMateriales.LargoProducto_LM, dbo.ListadoMateriales.Color_LM, dbo.Materiales.Detalles_Material, dbo.ListadoMateriales.Tratamiento_LM, dbo.Materiales.UnidadVenta_Material, dbo.Materiales.UnidadesUnidadVenta_Material, dbo.Materiales.TipoMaterial_Material, dbo.Materiales.PerfilOAccesorio_Material AS Materiales_PerfilOAccesorio_Material, (CASE WHEN floor([CantidadAPedir_LM] / [UnidadVenta_material]) = [CantidadAPedir_LM] / [UnidadVenta_material] THEN floor([CantidadAPedir_LM] / [UnidadVenta_material]) ELSE floor([CantidadAPedir_LM] / [UnidadVenta_material]) + 1 END) AS UV_a_Pedir, dbo.Materiales.PerfilOAccesorio_Material AS Materiales_PerfilOAccesorio_Material$8, dbo.ListadoMateriales.EstadoTratamiento_LM, dbo.Materiales.PerimetroExterior_Material, dbo.Materiales.PerimetroInterior_Material, dbo.Materiales.CaraVista_Material, dbo.ListadoMateriales.PerimetroInterior_LM, dbo.ListadoMateriales.PerimetroExterior_LM, dbo.ListadoMateriales.CaraVista_LM, dbo.ListadoMateriales.UnidadesUnidadVenta_LM, dbo.ListadoMateriales.CantidadEnTaller_LM, dbo.ListadoMateriales.CantidadEnObra_LM, dbo.ListadoMateriales.CantidadPendiente_LM, dbo.ListadoMateriales.CantidadPreparada_LM, dbo.ListadoMateriales.CantidadDudosa_LM, dbo.ListadoMateriales.CantidadRechazada_LM, dbo.ListadoMateriales.CantidadRecibida_LM, dbo.ListadoMateriales.Recibido_LM, dbo.ListadoMateriales.Verificado_LM, dbo.ListadoMateriales.Estado_LM, dbo.ListadoMateriales.DetallesParaPedido_LM, dbo.ListadoMateriales.Etiquetado_LM FROM dbo.Materiales INNER JOIN dbo.ListadoMateriales ON dbo.Materiales.IdMaterial = dbo.ListadoMateriales.IdMaterial_LM ORDER BY dbo.ListadoMateriales.IdObra_LM, dbo.ListadoMateriales.IdLinea_LM