Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

obtener nuevo cod con sprocedure en identity

Estas en el tema de obtener nuevo cod con sprocedure en identity en el foro de SQL Server en Foros del Web. que es lo mejor? crear procedures de inserción para tablas llaves primarias auto incrementables crear procedures de inserción generando una consulta del ultimo registro y ...
  #1 (permalink)  
Antiguo 11/01/2008, 23:21
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta obtener nuevo cod con sprocedure en identity

que es lo mejor?
  • crear procedures de inserción para tablas llaves primarias auto incrementables
  • crear procedures de inserción generando una consulta del ultimo registro y sumar 1.

como hago para obtener el id del nuevo registro insertado en caso use auto incremento en tablas (claro esta usando un procedure) ??

espero respondan es con urgencia, gracias
  #2 (permalink)  
Antiguo 13/01/2008, 01:56
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: obtener nuevo cod con sprocedure en identity

eso depende de lo que quieras hacer, pero generalmente es mucho mejor que SQL que administre los valores de autoincremento.

pero por ejemplo si es un sistema de facturacion, con varias llaves primarias y cada caja maneja su propio valor de incremento pues en ese caso es mejor manejarlo sin el idendity, pero tambien se podria con identtity, eso depende de como diseñes tu aplicacion

yo creo que es mucho mejor el manejar estos valores con identity.

ahora para obtener el ultimo valor identity insertado consultas de la siguiente forma.

SELECT @@IDENTITY
__________________
roy rojas
Programación en Español: DotNetcr.com
  #3 (permalink)  
Antiguo 18/01/2008, 01:02
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: obtener nuevo cod con sprocedure en identity

hola royrojas, gracias por responder, me ayudaste un monton, en verdad, despejaste dudas, te lo agradesco, nos vemos cuidate !
  #4 (permalink)  
Antiguo 18/01/2008, 12:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: obtener nuevo cod con sprocedure en identity

Difiero, perdon, en la recomendacion SYSROJAS, es "correcto" que es el ULTIMO identity insertado, mas no, el insertado por la conexion, podria, con @@IDENTITY, podria obtener el identity de otra conexion, si hubiera muchos clientes insertando.

Para obtener "MI" identity, se usua la funcion SCOPE_IDENTITY()

Devuelve el último valor IDENTITY insertado en una columna IDENTITY en el mismo alcance. Un alcance es un módulo (un procedimiento almacenado, desencadenador, función o lote). Por tanto, dos instrucciones están en el mismo alcance si se encuentran en el mismo procedimiento almacenado, función o lote.
  #5 (permalink)  
Antiguo 18/01/2008, 13:35
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: obtener nuevo cod con sprocedure en identity

iislas, estas en lo correcto.

hector2c, ahi es cuestion de lo que te sirve mas, debes analizar por ejemplo en este caso, cual de las dos opciones te conviene mejor para tu sistema.
__________________
roy rojas
Programación en Español: DotNetcr.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:04.