SQL Server - Ejecutar 1 sola vez

 
Vista:

Ejecutar 1 sola vez

Publicado por arcaso (4 intervenciones) el 31/03/2010 01:44:45
Hola de nuevo estoy intentando hacer un trigger para que cuando un sistema(Quiality Center) valla a modificar la tabla de dessteps me sume 1 al contador que esta en la tabla test todo hasta aqui estabien el problema es que el sistema si tu le dises que te agrege un nuevo paso te asi un insert y un update y de misma forma al borrar un registro hace un delete y un update mi duda es si ha forma de detectar si es un insert solo o con algun update ya que al ejecutarse los 2 hacen que el contador suba en 2 y no en 1 como debe ser

use pruebasVic

create Trigger INSERT_paso
On td.DESSTEPS
AFTER insert,update
As
begin
declare @ID varchar(50)
declare @IDTEST varchar(50)
select @IDTEST = DS_TEST_ID from INSERTED
select @ID = TS_TEST_VER_STAMP from td.TEST WHERE TS_TEST_ID= @IDTEST
SET @ID=@ID+1
update td.TEST set TS_TEST_VER_STAMP=@ID, TS_USER_01=@ID WHERE TS_TEST_ID= @IDTEST
end

create Trigger INSERT_paso
On td.DESSTEPS
AFTER update
As
begin
declare @ID varchar(50)
declare @IDTEST varchar(50)
select @IDTEST = DS_TEST_ID from INSERTED
select @ID = TS_TEST_VER_STAMP from td.TEST WHERE TS_TEST_ID= @IDTEST
SET @ID=@ID+1
update td.TEST set TS_TEST_VER_STAMP=@ID, TS_USER_01=@ID WHERE TS_TEST_ID= @IDTEST
end

use pruebasVic

create Trigger elimincaicon_paso
On td.DESSTEPS
for delete
As
declare @ID varchar(50)
declare @IDTEST varchar(50)
select @IDTEST = DS_TEST_ID from DELETED
select @ID = TS_TEST_VER_STAMP from td.TEST WHERE TS_TEST_ID= @IDTEST
SET @ID=@ID+1
update td.TEST set TS_TEST_VER_STAMP=@ID WHERE TS_TEST_ID= @IDTEST

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