Sobre NeoDBPro ... existe alguna manera? - Forum

Forum Navigation
You need to log in to create posts and topics.

Sobre NeoDBPro ... existe alguna manera?

Hola, alguien conoce algun comando o rutina que permita recorrer la base de datos y eliminar todos los registros duplicados

Tengo una base de datos llamada gestion.mdb y la tabla usuarios dentro de usuarios hay una tabla que es planilla (numerico)

Aqui en donde deseo eliminar registros duplicados....

Hay alguna forma de impedir un registro si el mismo ya se encuentra en la base?

 

Gracias

Una pregunta, la tabla usuarios tiene algun campo autonumerico ej: id?

si eso es asi podrias usar este script sql para sacar los duplicados:

WITH duplicados AS (
SELECT
id,
ROW_NUMBER() OVER (PARTITION BY planilla ORDER BY id) AS fila
FROM
usuarios
)
DELETE FROM usuarios
WHERE id IN (
SELECT id
FROM duplicados
WHERE fila > 1
)

para evitar que se te dupliquen en lo sucesivo deberias hacer:

If not exists (select 1 from usarios where planilla=@planilla)

insert into usuarios.......

 

espero te sirva

salu2

 

 

@rasl

Gracias amigo muy amable pero donde va ese script como hago para ejecutarlo?

con la instruccion de base de  datos dbpExecSQL

@rasl a ver si la cache... el unico campo numerico que maneja esta base es [planilla] que es campo numerico

serial asi entonces?

dbpExecSQL "gestion" "WITH duplicados AS (|SELECT|planilla,|ROW_NUMBER() OVER (PARTITION BY planilla ORDER BY planilla) AS fila|FROM|usuarios|)|DELETE FROM usuarios|WHERE planilla IN (|SELECT planilla|FROM duplicados|WHERE fila > 1|)" ""

 

si es correcto voy a armar una subrutina para llamarla en su momento con gosub