SQL - Necesito vuestra ayuda con triggers

 
Vista:

Necesito vuestra ayuda con triggers

Publicado por Victor (4 intervenciones) el 06/02/2001 12:10:39
Tengo semiecho el siguiente trigger y me da dos errores a la hora de intentar preguntar por el valor de las variables @idTabla y @tabla en las lineas 9 y 11.

CREATE TRIGGER traduccion ON [Traduccion]
FOR INSERT, UPDATE
AS
DECLARE @idTabla int,
@tabla varchar(50)
SELECT @idTabla=id_Tabla FROM inserted i INNER JOIN Traduccion t ON i.id_Tabla=t.id_Tabla
IF EXISTS(SELECT @tabla=nombre FROM Tabla ta WHERE ta.id_Tabla=@idTabla)
BEGIN
IF EXISTS(SELECT id FROM @tabla)
ELSE
BEGIN
/*
RAISERROR ('No existe en su tabla correspondiente')
ROLLBACK TRANSACTION
*/
END
END
ELSE
BEGIN
/*
RAISERROR ('No existe esa tabla')
ROLLBACK TRANSACTION
*/
END
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:Necesito vuestra ayuda con triggers

Publicado por Boli (6 intervenciones) el 06/02/2001 16:47:21
Yo tengo el mismo problema que tu..solo que necesito meter valores del select a una variable. En lo tuyo..creo que te casca al hacer el "Select * from @Tabla" porque la tabla no la encuentra...lo que puedes intentar hacer es ejecutar un string con el exec:

Exec "Select * from " + @Tabla
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:Necesito vuestra ayuda con triggers

Publicado por Victor (4 intervenciones) el 07/02/2001 10:34:19
creo q se meten valores de una select a una variables tal como lo hago yo,vamos el q me enseña asi lo hace y tiene el titulo de microsoft de SQL.creo q se hace asi:

SELECT @tabla=nombre FROM Tabla ta WHERE ta.id_Tabla=@idTabla

Espero q te sirva y gracias por tu ayuda,creo q no sirve pero mejor q nada ya es.
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:Necesito vuestra ayuda con triggers

Publicado por Angel (20 intervenciones) el 14/02/2001 18:57:18
El Problema que tienes es en la instruccion
SELECT id FROM @tabla
No se puede ejecutar una sentencia en SqlServer de esta forma. Como solucion, puedes usar el comando 'exec' apoyandote con una tabla temporal:

1.- crea una tabla temporal (se crea en tempdb y solo dura el tiempo que la transaccion actual esta activa)

create table #cuenta (valor varchar(20))

2.- construir la sentencia de forma dinamica

select @str = 'select count(id) from ' + @tabla

3.- llenar la tabla temporal con el resultado de la select previa

insert #cuenta exec (@str)

4.- leer el resultado

select @resultado = valor from #cuenta
if @resultado > 0 ........

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:Necesito vuestra ayuda con triggers

Publicado por Daniel Catalá pachés (13 intervenciones) el 09/03/2001 01:10:59
Puede alguien explicarme porque pone en el codigo
un IF y seguido un ELSE?????!?!?!?
No te peta esto????
IF EXISTS(SELECT id FROM @tabla)
ELSE
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