Borrados Logicos (para expertos)
Tengo varias sentencias DELETE, en mi programa.Son borrados logicos y solo me marca las tuplas para ser borradas. Imaginaros esta situacion:
codigo valor
1 pepe
2 luis (marcado para borrar)
3 juan (marcado para borrar)
Si ahora hago una insercion y en el 'cod' pongo la sentencia 'select max(cod) + 1 from clientes', me inserta con un 2 (ignora los borrados) y por tanto me da un error de clave duplicada.
¿Como lo puedo solucionar?
Gracias
codigo valor
1 pepe
2 luis (marcado para borrar)
3 juan (marcado para borrar)
Si ahora hago una insercion y en el 'cod' pongo la sentencia 'select max(cod) + 1 from clientes', me inserta con un 2 (ignora los borrados) y por tanto me da un error de clave duplicada.
¿Como lo puedo solucionar?
Gracias
Has probado a poner un set delete off delante de la insercción??
No se si te podra ayudar
No se si te podra ayudar
Prueba agregando un filtro al indice en tu tabla, es decir, coloca la instruccion NOT DELETED() en el filtro del indice principal de tu tabla y listo, los registros borrados no seran tomados en cuenta como indices y por lo tal no seran duplicados pero tampoco serna optimizables.
Saludos.
Saludos.
