No actualiza columna identity luego de una actualización de suscripcion

11/06/2009 - 01:17 por CHAR72 | Informe spam
Hola! tengo una sdf vacia, luego de realizar una replicación con un sql2000,
pasan los datos a las tablas, pero en la que tiene un autonumerico no le
actualiza el valor, pues cuando intento realizar un insert me da error de
valores duplicados, buscando en google encontre una solucion, que es:

Select max(ID) As MaxID from AAA
MaxID += 1
ALTER TABLE AAA ALTER COLUMN ID IDENTITY (" & MaxID & ", 1)"

pero piendo que deberia existir otra.

Saludos

Carlos

Preguntas similare

Leer las respuestas

#6 CHAR72
25/06/2009 - 21:33 | Informe spam
Maxi: perdon pero habia dejado el tema. Te respondo para que quede
finalizado.

Los inserts, solo lo hace en la tabla del mobile, NO en el server.

Saludos y gracias

Carlos

"Maxi" escribió en el mensaje
news:
Char a ver, el tema es asi, vos tenes dos tablas, una en el mobil y otra
en el server.
Si ambas generan registros y tenes identity se pueden pisar porque puede
haber dos numero 1 en ambos lugares.

Como lo resolves

1) Adicionando alguna columna mas a la pk por ejemplo que diga dispositivo
entonces ya no es el identity solo con lo cual es complicado que existan
duplicados
2) Cambias los rangos de los identity (lo que te explique) que es
simplemente a un identity decirle que empiece en 100000 y al otro en 0





Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com



"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje de
noticias:
Hola maxi! realmente, no entendí! pero no te preocupes, pensaba que
existia "algo" que no sabia configurar y que no nesecitaba de un truco,
como te mencione, funciona bien buscar el max y actualizar la dinicon de
la estructura.

Es mas que todo para mantener las mismas tablas en el mobile y el server.

Saludos y gracias

Carlos

"Maxi" escribió en el mensaje
news:
Hola, se entiende perfecto ahora :) lo que debes hacer es cambiar la
estructura del mobile para esa tabla y decirle que los identity por
ejemplo empiecen en 100000.
Esto es un truco para cuando usas identitys.

Se entiende?



Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com



"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje de
noticias:
Hola Maxi!

Funcionar, funciona todo, los insert y los updates. Explico con ejemplo
mejor.

Server: Tabla: XXX
ID

1
2
3

Mobile: Tabla XXX (sin crear)

Sincronizo, en el mobile se crea la tabla XXX y se copian los ID
(1,2,3)

Como los insert, se realizan en el mobile, luego de la sicronización,
intento agregar un registro pero me da error de ID duplicado, porque?
porque luego de la sincronización no se actualizó el SEED (el proximo
ID) de la db.
Por ese motivo, busco el valor maximo y actualizo el campo identity de
la tabla del mobile y luego si puedo realizar los inserts's

Se entendió?

Saludos

Carlos

"Maxi" escribió en el mensaje
news:
Hola, no lo inserta o no lo actualiza? Si en el mobil solo recibis y
no haces inserciones lo ideal seria que no este definada esa tabla
como identity entonces se genera solo en un lugar. Si tenes identitys
tenes que habilitar mas cosas para poder hacer el insert de un lado al
otro.

Si lo que no te funciona es el update contra un campo identity
entonces revisa el Store que creo en el subscriptor de replicacion y
fijate ahi en el codigo que no quiera hacer un update sobre el campo,
sino no anda. Esos store estan para cada operacion y tabla por tabla.

Pero no me queda claro si no te funciona el insert o el update



Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Server
http://blog.maxiaccotto.com



"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje de
noticias:
Hola! tengo una sdf vacia, luego de realizar una replicación con un
sql2000, pasan los datos a las tablas, pero en la que tiene un
autonumerico no le actualiza el valor, pues cuando intento realizar
un insert me da error de valores duplicados, buscando en google
encontre una solucion, que es:

Select max(ID) As MaxID from AAA
MaxID += 1
ALTER TABLE AAA ALTER COLUMN ID IDENTITY (" & MaxID & ", 1)"

pero piendo que deberia existir otra.

Saludos

Carlos
















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida