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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 MAXI
29/03/2005 - 04:21 | Informe spam
Hola Daniel, este es el funcionamiento normal de los identities, por eso no
es muy recomendable usarlos como claves donde ese valor sea expuesto al
usuario.

Te paso un viejo articulo que se ha escrito a raiz de una discusion de este
news, espero te sea de gran utilidad

http://www.configuracionesintegrale...p?articulo!9



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)



"Daniel" escribió en el mensaje
news:042301c533a9$ace0f240$
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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida