Duda con identities

28/03/2005 - 17:20 por Daniel | Informe spam
Hola a ver si me ayudan con esto.
Tengo una tabla donde manejo su clave primaria mediante un
identity ahora para insertar registros en esa tabla hago
un insert into tabla select y este select devuelve como
600 registros ahi no hay problema los inserta los 600.
Pero mi consulta es que pasa si sucede un error en el
select la columna identity se incrementa o no ya que al
suceder un error en el select no se inserto nada.
Gracias
 

Leer las respuestas

#1 Alejandro Mesa
28/03/2005 - 18:03 | Informe spam
Daniel,

Si se incrementa aunque no se inserte ninguna fila. Puedes capturar el valor
de IDENT_CURRENT antes y despues de la operacion y compararlos (siempre y
cuando seas tu el unico que esta insertando en ese momento).

Ejemplo:

use northwind
go

create table t (colA int not null identity)
go

select ident_current('t')
go

set identity_insert t on
go

insert into t (colA)
select orderid / (orderid - 10250)
from orders
go

set identity_insert t off
go

select ident_current('t')
go

select * from t
go

drop table t
go


AMB


"Daniel" wrote:

Hola a ver si me ayudan con esto.
Tengo una tabla donde manejo su clave primaria mediante un
identity ahora para insertar registros en esa tabla hago
un insert into tabla select y este select devuelve como
600 registros ahi no hay problema los inserta los 600.
Pero mi consulta es que pasa si sucede un error en el
select la columna identity se incrementa o no ya que al
suceder un error en el select no se inserto nada.
Gracias

Preguntas similares