28/09/2011, 09:53
|
| | Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años, 9 meses Puntos: 0 | |
Respuesta: Problema con trigger o desencadenador Aqui va el resto del Script:
/* * IMPEDIR ACTUALIZACIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'TiposDocumentos' */
IF UPDATE(TipoDoc)
BEGIN
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM TiposDocumentos, inserted WHERE (TiposDocumentos.TipoDoc = inserted.TipoDoc))
BEGIN
RAISERROR 44446 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''TiposDocumentos''.'
ROLLBACK TRANSACTION
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER "Clientes_ITrig" ON dbo.Clientes FOR INSERT AS
SET NOCOUNT ON
/* * REGLA DE VALIDACIÓN DEL CAMPO 'NroDocumento' */
IF (SELECT Count(*) FROM inserted WHERE NOT (NroDocumento>0)) > 0
BEGIN
RAISERROR 44444 'El campo "Nro. de Documento" debe contener datos'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Apellido' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Apellido Is Not Null And Apellido>' ')) > 0
BEGIN
RAISERROR 44444 'El campo "Apellido" debe contener datos'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Caja' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Caja Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Caja" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Orden' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Orden Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Orden" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Ubicacion' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Ubicacion Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Ubicación" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Observacion' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Observacion Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Observación" debe contener un valor'
ROLLBACK TRANSACTION
END
/* * IMPEDIR INSERCIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'Oficinas' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM Oficinas, inserted WHERE (Oficinas.CodOficina = inserted.CodOficina))
BEGIN
RAISERROR 44447 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''Oficinas''.'
ROLLBACK TRANSACTION
END
/* * IMPEDIR INSERCIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'TiposDocumentos' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM TiposDocumentos, inserted WHERE (TiposDocumentos.TipoDoc = inserted.TipoDoc))
BEGIN
RAISERROR 44447 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''TiposDocumentos''.'
ROLLBACK TRANSACTION
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER "Clientes_DTrig" ON dbo.Clientes FOR DELETE AS
SET NOCOUNT ON
/* * EXTENDER ELIMINACIONES EN CASCADA A 'Movimientos_Clientes' */
DELETE Movimientos_Clientes FROM deleted, Movimientos_Clientes WHERE deleted.TipoDoc = Movimientos_Clientes.TipoDoc AND deleted.NroDocumento = Movimientos_Clientes.NroDocumento
/* * EXTENDER ELIMINACIONES EN CASCADA A 'RelCteProd' */
DELETE RelCteProd FROM deleted, RelCteProd WHERE deleted.TipoDoc = RelCteProd.TipoDoc AND deleted.NroDocumento = RelCteProd.NroDocumento
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER "Productos_UTrig" ON dbo.Productos FOR UPDATE AS
SET NOCOUNT ON
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Caja' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Caja Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Caja" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Orden' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Orden Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Orden" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Ubicacion' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Ubicacion Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Ubicación" debe contener un valor'
ROLLBACK TRANSACTION
END
ELSE
/* * REGLA DE VALIDACIÓN DEL CAMPO 'Observacion' */
IF (SELECT Count(*) FROM inserted WHERE NOT (Observacion Is Not Null)) > 0
BEGIN
RAISERROR 44444 'El campo "Observación" debe contener un valor'
ROLLBACK TRANSACTION
END
/* * IMPEDIR ACTUALIZACIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'Oficinas' */
IF UPDATE(CodOficina)
BEGIN
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM Oficinas, inserted WHERE (Oficinas.CodOficina = inserted.CodOficina))
BEGIN
RAISERROR 44446 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''Oficinas''.'
ROLLBACK TRANSACTION
END
END
/* * IMPEDIR ACTUALIZACIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'Sucursales' */
IF UPDATE(Sucursal)
BEGIN
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM Sucursales, inserted WHERE (Sucursales.CodSucursal = inserted.Sucursal))
BEGIN
RAISERROR 44446 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''Sucursales''.'
ROLLBACK TRANSACTION
END
END
/* * IMPEDIR ACTUALIZACIONES SI NO HAY NINGUNA CLAVE COINCIDENTE EN 'TiposProductos' */
IF UPDATE(TipoProducto)
BEGIN
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM TiposProductos, inserted WHERE (TiposProductos.TipoProducto = inserted.TipoProducto))
BEGIN
RAISERROR 44446 'No puede agregarse ni modificarse el registro. Las reglas de integridad referencial requieren un registro relacionado en la tabla ''TiposProductos''.'
ROLLBACK TRANSACTION
END
END |