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

scope_identity en sql server 2008

Estas en el tema de scope_identity en sql server 2008 en el foro de SQL Server en Foros del Web. buenos días, hasta ahora he estado utilizando después de algunos insert la siguiente select para recuperar el último registro guardado, sin embargo he pasado de ...
  #1 (permalink)  
Antiguo 24/06/2014, 03:36
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
scope_identity en sql server 2008

buenos días,

hasta ahora he estado utilizando después de algunos insert la siguiente select para recuperar el último registro guardado, sin embargo he pasado de sql server 2000 a sql server 2008, y ahora no siempre funciona:

Código SQL:
Ver original
  1. SELECT * FROM " + tabla + " WHERE (" + ncolu + "= SCOPE_IDENTITY())

un saludo,
josé carlos.

Última edición por gnzsoloyo; 24/06/2014 a las 03:51
  #2 (permalink)  
Antiguo 24/06/2014, 07:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 16 años
Puntos: 774
Respuesta: scope_identity en sql server 2008

tan dificil es poner en google SCOPE_IDENTITY???

http://msdn.microsoft.com/en-us/library/ms190315.aspx
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 24/06/2014, 08:50
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

gracias por responder, pero no me soluciona nada.

un saludo,
josé carlos.
  #4 (permalink)  
Antiguo 24/06/2014, 09:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 15 años, 1 mes
Puntos: 180
Respuesta: scope_identity en sql server 2008

evoarte

SCOPE_IDENTITY(), es una FUNCION, que te da el ULTIMO IDENTITY insertado por la conexión

¿Qué deseas hacer con esta función?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 24/06/2014, 10:29
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

pues, recuperar el último registro insertado previamente en esa misma sesión, he cambiado de servidor web y también de versión de sql server, y ahora genera un error. Y al preguntar, pensaba que es posible que alguien se hubiera encontrado con un problema similar.

(he pasado de windows NT a windows 2012 web server, y de sql server 2000 a 2008)

En la documentación el resultado de scope_identity ahora es numeric(38,0), antes sql_variant, pero creo que eso no debe afectar.

un saludo,
josé carlos.
  #6 (permalink)  
Antiguo 24/06/2014, 10:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 16 años
Puntos: 774
Respuesta: scope_identity en sql server 2008

Código SQL:
Ver original
  1. @@IDENTITY
eso no te funciona???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 24/06/2014, 11:00
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

lo utilizo como una función, que recibe como argumentos tabla y ncolu, es decir, que las consultas son del tipo:

Código SQL:
Ver original
  1. SELECT * FROM tabla WHERE columna= SCOPE_IDENTITY()
  #8 (permalink)  
Antiguo 24/06/2014, 15:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 15 años, 1 mes
Puntos: 180
Respuesta: scope_identity en sql server 2008

evoarte

Eso que esta tecleando no tiene sentido

DECLARE @MyIdentity int

insert........bla, bla, bla

SET @MyIdentity = SCOPE_IDENTITY()

En esta variable @MyIdentity, tendras el numero de IDENTITY insertado por la conexion
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 25/06/2014, 03:59
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

No lo estoy utilizando en un procemiento, desde código asp (utilizando javascript) primero llamo a una función que ejecuta la inserción, y a continuación llamo a otra función que ejecuta el select con el scope_identity. Esto así antes funcionaba.

un saludo,
josé carlos.
  #10 (permalink)  
Antiguo 25/06/2014, 07:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 16 años
Puntos: 774
Respuesta: scope_identity en sql server 2008

segun la documentacion de microsoft estas usando el scopeidentity para mandar cual fue la tabla(columna) que hizo la insercion a tu procedimiento? esto es correcto??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 25/06/2014, 09:48
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

correcto es, primero realizo el insert y a continuación el select, lo realizo desde una página .asp, el haber preguntado aquí es por que me ha desconcertado que algo que llevo utilizando años ha dejado de funcionar al cambiar la versión de windows y sql server (ahora es w2012 web server y sql server 2008).

cuando realizo el insert y a continuación el insert directamente en la base de datos con management studio funciona.

vamos que como no tengo ni idea de por donde puede venir el error, he preguntado por aquí y por allá.

gracias por la paciencia.

un saludo,
josé carlos.
  #12 (permalink)  
Antiguo 25/06/2014, 10:28
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 15 años, 1 mes
Puntos: 180
Respuesta: scope_identity en sql server 2008

Pues si sigues pensando que las cosas de una versión anterior a la siguiente, seguirán funcionando, tendrás muchos dolores de cabeza.
__________________
MCTS Isaias Islas
  #13 (permalink)  
Antiguo 25/06/2014, 11:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: scope_identity en sql server 2008

En la documentación de Microsoft referente a SQL Server 2008 se menciona específicamente que se presentó un BUG por el valor devuelto por esa función. Podría ser esa la causa del problema, pero eso implicaría que no hubieses instalado el SP2 de SQL Server 2008 R2 (http://support.microsoft.com/kb/2630458).
¿Exactamente con qué versión y release estás trabajando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 25/06/2014, 11:45
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 20 años
Puntos: 2
Respuesta: scope_identity en sql server 2008

SQL Server 10.50.4000.0 – SP2 (Web Edition (64-bit))

Etiquetas: registro, select, server, siguiente, sql, tabla
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 00:21.