HOLA:
he escrito el siguiente trigger:
IF EXISTS (SELECT name FROM sysobjects WHERE name =
'TR_BS_I_ValidarDni_empleado' AND
type = 'TR')
DROP TRIGGER TR_BS_I_ValidarDni_empleado
go
CREATE TRIGGER TR_BS_I_ValidarDni_empleado
on Tsl_Empleado
AFTER INSERT,UPDATE
/*
AUTOR: CCALLOQUISPE PALOMINO RONALD VALENTIN
FECHA CREACION: 13/02/2005
FECHA ACTUALIZACION: NO DISPONIBLE
TEMA: ESTE TRIGGER TIENE COMO OBJETIVO QUE AL ACTUALIZAR EL DNI DEL EMPLEADO
NO SE REPITA CON EL DNI DE OTRO EMPLEADO.
*/
AS
/*
VARIABLES INTERNAS DEL TRIGGER
*/
declare @v_cantidad int
declare @v_dni varchar(10)
select
top 1
@v_dni=inserted.T_Empleado_dni
from inserted
select @v_cantidad=count(*)
from tsl_empleado
where T_empleado_dni=@v_dni
IF @v_cantidad>1
BEGIN
raiserror('EL Nº DNI YA ESTA ASIGNADO A OTRA PERSONA',16,1)
rollback transaction
END
/*
DECLARE @v_cantidad int
select @v_cantidad=count(*)
from tsl_empleado a,inserted b
where
a.T_Empleado_Dni=b.T_Empleado_Dni
and a.T_Empleado_Dni <> ''
IF @v_cantidad>=2
BEGIN
raiserror('EL Nº DNI YA ESTA ASIGNADO A OTRA PERSONA',16,1)
rollback transaction
END
*/
el problema con este trigger es que cuando en un formulario windows ingreso
el numero de dni repetido d eun empleado la validacion se demora mucho tiempo
dando una impresion de que se ha quedado colgado si fueran tan amable de como
puedo modificar este trigger para que sea mas rapido.
chau y muchas gracias por anticipado
CCALLOQUISPE
Leer las respuestas