He hecho un trigger para una tabla FOR UPDATE. Desde un programa al guardar unos datos ese trigger se dispara (por lo que digo yo que al guardar los datos hará un update sobre la tabla) el caso es que a causa de ese trigger me sale un error en el programa que me dice "Invalid object name 'updated'." Sé que el error sale por el trigger pq si lo elimino el error no salta, pero... pq dice que es un objeto no válido?? es q no puede saber cual es el último registro actualizado?? cómo puedo decirle al trigger que si el objeto no existe salga?
El código de mi trigger es este:
CREATE TRIGGER [TR_UPDATE] ON [dbo].[PDVLI]
FOR UPDATE
AS
begin
declare @signo varchar(1)
declare @refserie varchar(3)
declare @refnum varchar(15)
declare @linsigno varchar(1)
declare @linserie varchar(3)
declare @reflnum varchar(15)
declare @opa varchar(2)
declare @articulo varchar(20)
declare @grp_id varchar(12)
declare @clave int
declare @clave2 int
/*declare MiCursor cursor for SELECT articulo FROM updated
fetch next from MiCursor into @articulo
if @@Fetch_status=0*/
SELECT @grp_id=GRP_ID, @signo=Signo, @RefSerie=RefSerie, @refnum=RefNum, @linsigno=LinSigno, @linserie=LinSerie, @reflnum=RefLNum, @articulo=articulo FROM updated
/*set @opa= 'VP'*/
SELECT @opa=TipoDoc FROM PDVCA WHERE Signo=@signo and RefSerie=@refserie and RefNum=@refnum and GRP_ID=@grp_id
IF @opa='VP'
set @clave= (SELECT ROW_ID FROM PFA_FUNCDT5HDR WHERE Signo=@linsigno and RefSerie=@refserie and RefNum=@reflnum)
set @clave2= (SELECT ROW_ID FROM PFA_FUNCDTDEV WHERE Signo=@linsigno and RefSerie=@refserie and RefNum=@reflnum)
IF substring(@articulo,1,1)='8' and @opa='VP'
UPDATE PFA_FUNCDT5HDR
SET Signo=@linsigno, RefSerie=@linserie, RefNum=@reflnum, OPA=@opa,C0001='',C0002='',C0003=01/01/1900,C0004=01/01/1900, C0005='', C0006='', C0007='',C0008=0
WHERE ROW_ID=@clave
else
IF substring(@articulo,1,2)='64' OR substring(@articulo,1,2)='65' OR substring(@articulo,1,2)='66' AND @opa='VP'
update PFA_FUNCDT5DEV
SET Signo=@linsigno, RefSerie=@linserie, RefNum=@reflnum,OPA=@opa,C0001=2,C0002=''
WHERE ROW_ID=@clave2
else
IF @opa='VP'
UPDATE PFA_FUNCDT5HDR
SET Signo=@linsigno, RefSerie=@linserie, RefNum=@reflnum, OPA=@opa,C0001='',C0002='',C0003=01/01/1900,C0004=01/01/1900, C0005='', C0006='', C0007='',C0008=0
WHERE ROW_ID=@clave
update PFA_FUNCDT5DEV
SET Signo=@linsigno, RefSerie=@linserie, RefNum=@reflnum,OPA=@opa,C0001=2,C0002=''
WHERE ROW_ID=@clave2
end
el error esta en lo resaltado