Identity

28/11/2003 - 00:28 por Daniel Carrizales | Informe spam
Estimados Amigo

Tengo un problema con el Identity de una tabla. SQL server
2000.

El problema se resume en que se esta insertando y
actualizando en una de pedidos cuya llave es un campo con
propiedad Identity que se incremente de 1 en 1.

Bueno les comento que se me estan perdiendo registros ya
que no se estan manteniendo la secuencia de la llave, no
tengo la menor idea del porque sucede esto, si tubieran
alguna información les agradeceré que me lo envíen por
correo, supongo que debe ser por bloqueos de la Base de
datos que existen dos registros que compiten por el mismo
recurso pero uno de ellos no puede escribir y por lo tanto
se salta la propiedad del Identity

mil gracias a todos uds por su ayuda.


Daniel

Preguntas similare

Leer las respuestas

#1 Isaías
28/11/2003 - 01:21 | Informe spam
¿Se borran registros una vez INSERTADOS?, esa es la razon
de la "Perdida".

La propiedad IDENTITY son para registros que NO SE BORRAN.

Saludos.
Respuesta Responder a este mensaje
#2 Javier Loria
28/11/2003 - 02:58 | Informe spam
Hola Daniel:
El Identity no soporta transacciones, si por alguna razon se produjera
un rollback se pierde la secuencia. Revisa un articulo en www.portalsql.com
llamada Claves Naturales o Artificiales?, es un resumen de una entretenida
polemica de este foro.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Daniel Carrizales escribio:
Estimados Amigo

Tengo un problema con el Identity de una tabla. SQL server
2000.

El problema se resume en que se esta insertando y
actualizando en una de pedidos cuya llave es un campo con
propiedad Identity que se incremente de 1 en 1.

Bueno les comento que se me estan perdiendo registros ya
que no se estan manteniendo la secuencia de la llave, no
tengo la menor idea del porque sucede esto, si tubieran
alguna información les agradeceré que me lo envíen por
correo, supongo que debe ser por bloqueos de la Base de
datos que existen dos registros que compiten por el mismo
recurso pero uno de ellos no puede escribir y por lo tanto
se salta la propiedad del Identity

mil gracias a todos uds por su ayuda.


Daniel
Respuesta Responder a este mensaje
#3 Daniel Carrizales
28/11/2003 - 15:14 | Informe spam
Isaías te comento que efectivamente se pierden registros
por que el identity salta un registro, esto ocurre por lo
menos dos veces al dia, me preocupa como verás, además en
esta tabla solo se insertan registros y luego se
actualizan mas no se eliminan (100% seguro), pero supongo
que por alguna razon existe un bloqueo que hace que se
salte la escritura de un registro

Saludos

Daniel

¿Se borran registros una vez INSERTADOS?, esa es la razon
de la "Perdida".

La propiedad IDENTITY son para registros que NO SE BORRAN.

Saludos.
.

Respuesta Responder a este mensaje
#4 Daniel Carrizales
28/11/2003 - 15:40 | Informe spam
Javier, me gustaría ver ese artículo pero estoy con
restricciones en el internet, te agradeceré que me
indiques en el artículo en donde hace referencia a lo que
me indicas y si lo puedes copiar hacia esta página y
además que me copies el Link ya que lo tengo que sustentar
a gerencia

Mil gracias por tu ayuda

Daniel

Hola Daniel:
El Identity no soporta transacciones, si por alguna


razon se produjera
un rollback se pierde la secuencia. Revisa un articulo en


www.portalsql.com
llamada Claves Naturales o Artificiales?, es un resumen


de una entretenida
polemica de este foro.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Daniel Carrizales escribio:
Estimados Amigo

Tengo un problema con el Identity de una tabla. SQL




server
2000.

El problema se resume en que se esta insertando y
actualizando en una de pedidos cuya llave es un campo




con
propiedad Identity que se incremente de 1 en 1.

Bueno les comento que se me estan perdiendo registros ya
que no se estan manteniendo la secuencia de la llave, no
tengo la menor idea del porque sucede esto, si tubieran
alguna información les agradeceré que me lo envíen por
correo, supongo que debe ser por bloqueos de la Base de
datos que existen dos registros que compiten por el




mismo
recurso pero uno de ellos no puede escribir y por lo




tanto
se salta la propiedad del Identity

mil gracias a todos uds por su ayuda.


Daniel




.

Respuesta Responder a este mensaje
#5 Javier Loria
28/11/2003 - 16:38 | Informe spam
Hola:
www.portalsql.com NO permite que lo haga directamente ya que no pone
los enlaces, pero si en el la pagina principal buscas "Claves Naturales" te
aparece de primero en la lista de articulos.
Te envio el copia del test:
==Hola Miguel:
Que tan bien sale librado el IDENTITY de las transacciones?
Revisa el siguiente codigo:
/* Codigo con IDENTITY */
DROP TABLE Test
GO
CREATE TABLE Test(
TestID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
VALUES ('Uno')
INSERT TEST
VALUES ('Dos')
INSERT TEST
VALUES ('Tres')
GO
SELECT * FROM TEST
GO
DBCC CHECKIDENT(Test)

BEGIN TRAN
INSERT TEST
VALUES ('Cuatr')
ROLLBACK TRAN
GO
INSERT TEST
VALUES ('Cuatro')

SELECT * FROM TEST

DBCC CHECKIDENT(Test)

Si usas una seleccion pura transaccional de SQL:
/* Codigo sin IDENTITY */
DROP TABLE TEST
GO
CREATE TABLE Test(
TestID INT --IDENTITY(1,1)
NOT NULL PRIMARY KEY,
TestName varchar(20) NOT NULL
)
GO
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Uno'
FROM TEST

INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Dos'
FROM TEST

INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Tres'
FROM TEST

GO
SELECT * FROM TEST
GO

BEGIN TRAN
INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatr'
FROM TEST
ROLLBACK TRAN
GO

SELECT * FROM TEST

INSERT TEST
SELECT COALESCE(MAX(TESTID),0)+1, 'Cuatro'
FROM TEST

SELECT * FROM TEST

Realmente quieres meter un "elemento" no TRANSACCIONAL a tu base de datos,
pudiento usar TRANSACCIONES reales?

Saludos,

Javier Loria
Costa Rica (MVP)
=
Espero te sirva,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Daniel Carrizales escribio:
Javier, me gustaría ver ese artículo pero estoy con
restricciones en el internet, te agradeceré que me
indiques en el artículo en donde hace referencia a lo que
me indicas y si lo puedes copiar hacia esta página y
además que me copies el Link ya que lo tengo que sustentar
a gerencia

Mil gracias por tu ayuda

Daniel

Hola Daniel:
El Identity no soporta transacciones, si por alguna razon se
produjera un rollback se pierde la secuencia. Revisa un articulo en
www.portalsql.com llamada Claves Naturales o Artificiales?, es un
resumen de una entretenida polemica de este foro.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Daniel Carrizales escribio:
Estimados Amigo

Tengo un problema con el Identity de una tabla. SQL server
2000.

El problema se resume en que se esta insertando y
actualizando en una de pedidos cuya llave es un campo con
propiedad Identity que se incremente de 1 en 1.

Bueno les comento que se me estan perdiendo registros ya
que no se estan manteniendo la secuencia de la llave, no
tengo la menor idea del porque sucede esto, si tubieran
alguna información les agradeceré que me lo envíen por
correo, supongo que debe ser por bloqueos de la Base de
datos que existen dos registros que compiten por el mismo
recurso pero uno de ellos no puede escribir y por lo tanto
se salta la propiedad del Identity

mil gracias a todos uds por su ayuda.


Daniel




.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida