SQL - ayuda con triggers!!!

 
Vista:

ayuda con triggers!!!

Publicado por juan (3 intervenciones) el 17/10/2004 10:25:26
Hola. Quisiera ver si me pudieran ayudar con este problema:
necesito un incremento en un campo int de un tabla pero no se como hacerlo, no existen sequence en sql server y creo que el codigo que ingrese no esta correcto pues no incrementa.Ojala me puedan ayudar.
el sql server que utilizo es el 7.0

en el trigger coloque el siguiente codigo :

create trigger (name) on (tabla)
for insert, update , delete
as
select @@identity from tabla
update tabla set codcampo = @@identity +1
commit;

en el cliente
cmd.CommandText = \"insert into tabla(descripcion)values(\'texto\')\"
cmd.execute

me inserta solo el campo descripcion, les agradeceria mucho si me ayudaran con este problema. De antemano muchas 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

RE:ayuda con triggers!!!

Publicado por quark (9 intervenciones) el 18/10/2004 08:11:15
--EJEMPLO
create trigger (name) on (tabla)
for insert --, update , delete
as
declare @clave as int
--extraes la clave para luego
declare @tramite_insertado varchar(50),@EstadoTramite integer,@ejercicio integer,@departamento integer,@expediente integer,@fec_ejecucion datetime
select @ejercicio = (select inserted.cd_ejercicio from inserted)
select @departamento = (select inserted.cd_departamento from inserted)
select @expediente = (select inserted.cd_expediente from inserted)
select @tramite_insertado = (select inserted.cd_tramite from inserted)

set @clave = select max(id) from mitaBLA
-- @@identity no tiene pq ser el campo tuyo
SET NOCOUNT ON

update tabla set codcampo = @clave +1 WHERE FIltro del campo q tenías --IMPORTANTE

commit;
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:ayuda con triggers!!!

Publicado por Isaías Islas (5072 intervenciones) el 18/10/2004 16:47:20
Quark

El codigo es perfecto, aunque difiero de colocarlo en un TRIGGER, solo para obtener un MAX de mi llave he incrementarla en uno.

Simplemente, deberia declarar su campo (el que va a llevar la numeracion) de tipo NUMERICO y colocarle la caracteristica de IDENTITY.

Saludos
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