SQL Server - !!! Ayudenme por Favor !!!!

 
Vista:

!!! Ayudenme por Favor !!!!

Publicado por Jhon (16 intervenciones) el 23/12/2003 00:42:58
Necesito hacer un trigger de eliminar, para cuando vaya a eliminar un registro de la tabla, compruebe si el ID del registro(que voy a eliminar), se encuentra en una tabla determinada....

Si me pueden ayudar con el código se agradecería bastante...

Gracias de antemano
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

RE:!!! Ayudenme por Favor !!!!

Publicado por Mariano (33 intervenciones) el 23/12/2003 20:46:18
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'Desenca'
AND type = 'TR')
DROP TRIGGER Desenca
GO

CREATE TRIGGER Desenca
ON dbo.testCHECK
FOR DELETE
AS
BEGIN
DECLARE @Cant int
Select @Cant=count(deleted.Indice) From deleted inner join Tabla1 on deleted.Indice=Tabla1.indice
if @Cant>0
PRINT 'Hay ' + cast(@Cant as char(5)) + 'en la otra tabla'
Else
PRINT 'No habia casos en Tabla1'
END
GO
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

RE:!!! Ayudenme por Favor !!!!

Publicado por Mariano (33 intervenciones) el 23/12/2003 20:46:20
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'Desenca'
AND type = 'TR')
DROP TRIGGER Desenca
GO

CREATE TRIGGER Desenca
ON dbo.testCHECK
FOR DELETE
AS
BEGIN
DECLARE @Cant int
Select @Cant=count(deleted.Indice) From deleted inner join Tabla1 on deleted.Indice=Tabla1.indice
if @Cant>0
PRINT 'Hay ' + cast(@Cant as char(5)) + 'en la otra tabla'
Else
PRINT 'No habia casos en Tabla1'
END
GO
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

RE:!!! Ayudenme por Favor !!!!

Publicado por quark (5 intervenciones) el 26/12/2003 12:00:57
CREATE TRIGGER "ALUMNOS_DTrig" ON dbo.ALUMNOS FOR DELETE AS
SET NOCOUNT ON
/* * IMPEDIR ELIMINACIONES SI HAY REGISTROS DEPENDIENTES EN 'curso_alumno' */
IF (SELECT COUNT(*) FROM deleted, curso_alumno WHERE (deleted.id_persona = curso_alumno.id_persona)) > 0
BEGIN
RAISERROR 44445 'No puede eliminarse ni modificarse el registro. Dado que existen registros relacionados en la tabla ''curso_alumno'', podrían infringirse reglas de integridad referencial.'
ROLLBACK TRANSACTION
END
/* * IMPEDIR ELIMINACIONES SI HAY REGISTROS DEPENDIENTES EN 'Ponentes_Curso' */
IF (SELECT COUNT(*) FROM deleted, Ponentes_Curso WHERE (deleted.id_persona = Ponentes_Curso.id_persona)) > 0
BEGIN
RAISERROR 44445 'No puede eliminarse ni modificarse el registro. Dado que existen registros relacionados en la tabla ''Ponentes_Curso'', podrían infringirse reglas de integridad referencial.'
ROLLBACK TRANSACTION
END
/* * IMPEDIR ELIMINACIONES SI HAY REGISTROS DEPENDIENTES EN 'Solicitudes' */
IF (SELECT COUNT(*) FROM deleted, Solicitudes WHERE (deleted.id_persona = Solicitudes.id_persona)) > 0
BEGIN
RAISERROR 44445 'No puede eliminarse ni modificarse el registro. Dado que existen registros relacionados en la tabla ''Solicitudes'', podrían infringirse reglas de integridad referencial.'
ROLLBACK TRANSACTION
END
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