Obtener Identity sin Set No Count

15/06/2005 - 10:16 por Juan Ant. | Informe spam
Hasta ahora estoy obteniendo el último Identity generado de esta
forma:

set nocount on
insert into
select @@identity
set nocount off

Todo ello ejecutado de un golpe. He probado a hacer por separado la
Insert y la Select @@identity, y parece que funciona perfectamente,
pero recordar que esto tenía algún problema. ¿Puede ser? ¿Debo
utilizar siempre el set nocount?

Estoy conectándome mediante ADO.

Gracias!
 

Leer las respuestas

#1 Alejandro Mesa
15/06/2005 - 14:01 | Informe spam
Juan,

Estas ejecutando estas sentencias desde un procedimineto almacenado?

El problema es que si no usas "set nocount on", entonces ADO recivira varios
recordsets, ya que el mensaje de cuantas filas fueron afectadas por la
sentencia insert y ademas obtendras otro por el "select @@identity" y otro
mas por el mensaje de cuantas filas fueron afectadas por el select anterior.
Para procesar estos recordsets debes usar el metodo nextrecordset del objeto
recordset. Si estas usando un procedimiento almacenado con parametros de
salida, no tendras acceso a estos, asi como al valor de retorno del sp, hasta
que no hayas procesado todos los recordsets devueltos.


AMB

"Juan Ant." wrote:


Hasta ahora estoy obteniendo el último Identity generado de esta
forma:

set nocount on
insert into
select @@identity
set nocount off

Todo ello ejecutado de un golpe. He probado a hacer por separado la
Insert y la Select @@identity, y parece que funciona perfectamente,
pero recordar que esto tenía algún problema. ¿Puede ser? ¿Debo
utilizar siempre el set nocount?

Estoy conectándome mediante ADO.

Gracias!


Preguntas similares