Come ripristinare ID corretto?

Forum dedicato interamente a Microsoft Access

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Come ripristinare ID corretto?

Messaggioda MTAccess » 12 nov 2017, 19:48

Tempo fa convertii un DB di Access nella versione 2003 che uso attualmente, soltanto a distanza di tempo mi accorsi che il contenuto dei campi ID delle tabelle principali, e soltanto quelle, dalla data della conversione in poi non rispettava più la sequenza precedente ma aveva fatto un salto di decine di migliaia, centinaia di migliaia o addirittura milioni, da lì in poi tutto procedeva regolarmente incrementando di uno ogni nuovo record.

Questa nuova ed incomprensibile numerazione non ha avuto nessun effetto sulla procedura e tutto ha continuato a funzionare regolarmente come prima.

Mi sto chiedendo se è possibile e come ripristinare la numerazione originaria.
Tenendo ben presente che gli ID dovranno poi essere sostituiti anche nelle relative tabelle di collegamento uno-a-molti e molti-a-molti.

Grazie a chi saprà darmi indicazioni utili.
Ultima modifica di MTAccess il 15 nov 2017, 18:49, modificato 1 volta in totale.
OsvaldoLaviosa
Utente Senior
Messaggi: 4200
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Come ripristinare ID corretto?

Messaggioda OsvaldoLaviosa » 12 nov 2017, 20:24

Credo che non potrai ripristinare la stessa identica numerazione originale, ma, se ti danno fastidio quei vistosi salti, ti consiglio di leggere questo
Https://1drv.ms/w/s!ArJd2J5n5j_rhhD711Aka2MPdgOX
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 12 nov 2017, 21:17

Ciao Osvaldo, grazie del link, lo consulterò attentamente poi ti dirò.
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 12 nov 2017, 23:28

OsvaldoLaviosa ha scritto:Credo che non potrai ripristinare la stessa identica numerazione originale, ma, se ti danno fastidio quei vistosi salti, ti consiglio di leggere questo
Https://1drv.ms/w/s!ArJd2J5n5j_rhhD711Aka2MPdgOX

Letto e riletto, dettagliato, preciso e sicuramente utile, ma per il momento il tuo "se" ha avuto il sopravvento. :wink:
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 13 nov 2017, 12:18

In quelle note si parla di tabelle singole o di tabelle madre e figlia/e, partendo sempre dal presupposto che sia da sostituire l'ID della tabella madre e conseguentemente lo stesso ID presente nelle tabelle figlie.

Come ci si deve comportare nel caso in cui l'ID da sostituire sia soltanto quello di una tabella figlia, si adotta la procedura 1?
OsvaldoLaviosa
Utente Senior
Messaggi: 4200
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Come ripristinare ID corretto?

Messaggioda OsvaldoLaviosa » 14 nov 2017, 08:10

Forse ti riferisci a una tabella che rappresenta l'ultimo ramo di una serie di relazioni. Tale tabella avrà un campo ID chiave primaria non legato ad altra tabella. Sì, vale la procedura 1.
Avatar utente
@Alex
Utente Senior
Messaggi: 3590
Iscritto il: 29 feb 2012, 17:59
Contatta:

Re: Come ripristinare ID corretto?

Messaggioda @Alex » 14 nov 2017, 14:40

Mi sembra proprio lo stesso problema... ma veramente molto molto simile...
https://groups.google.com/forum/?hl=it#!topic/it.comp.appl.access/6Gq9horkVXM
Sono contrario al CROSSPOST
@Alex
+m2+
Utente Senior
Messaggi: 557
Iscritto il: 10 mag 2017, 18:22

Re: Come ripristinare ID corretto?

Messaggioda +m2+ » 14 nov 2017, 15:52

In realtà è possibile, anche "reimpacchettare" (cioè senza buchi) i numeratori.
Con Access non ti so dire, "senza" sicuramente sì.
Ma la domanda (il "se") sorge spontanea.
Posto che usare campi autoincrementanti in questo modo non è esattamente lungimirante, soprattutto nel caso della necessità di effettuare manutenzione, cosa ti turba, esattamente?
Il mero aspetto "estetico" ?
Avatar utente
@Alex
Utente Senior
Messaggi: 3590
Iscritto il: 29 feb 2012, 17:59
Contatta:

Re: Come ripristinare ID corretto?

Messaggioda @Alex » 14 nov 2017, 15:59

+m2+ ha scritto:In realtà è possibile, anche "reimpacchettare" (cioè senza buchi) i numeratori.
Con Access non ti so dire, "senza" sicuramente sì.
Ma la domanda (il "se") sorge spontanea.
Posto che usare campi autoincrementanti in questo modo non è esattamente lungimirante, soprattutto nel caso della necessità di effettuare manutenzione, cosa ti turba, esattamente?
Il mero aspetto "estetico" ?

Con Access gli AutoIncrementali si AUTORESETTANO se si Compatta il DB con Tabella VUOTA, quindi basta clonarla, vuotarla e di conseguenza fare un INSERT... ovviamente questo se la Tabella non ha Relazioni, altrimenti diventa un pochetto più complesso ma ovviamente fattibilissimo.
La non conoscenza del FieldType, e forse di altro, sicuramente fa nascere la preoccupazione...
In questi casi effettivamente si evidenzia ancora maggiormente il limite dell'autoincrementale... ma per DB casalinghi ha una comodità notevole.
Sono contrario al CROSSPOST
@Alex
+m2+
Utente Senior
Messaggi: 557
Iscritto il: 10 mag 2017, 18:22

Re: Come ripristinare ID corretto?

Messaggioda +m2+ » 14 nov 2017, 17:32

@Alex ha scritto:Con Access gli AutoIncrementali si AUTORESETTANO se si Compatta il DB con Tabella VUOTA, quindi basta clonarla, vuotarla e di conseguenza fare un INSERT... ovviamente questo se la Tabella non ha Relazioni, altrimenti diventa un pochetto più complesso ma ovviamente fattibilissimo.
La non conoscenza del FieldType, e forse di altro, sicuramente fa nascere la preoccupazione...
In questi casi effettivamente si evidenzia ancora maggiormente il limite dell'autoincrementale... ma per DB casalinghi ha una comodità notevole.

Intendevo ovviamente rinumerare la/le chiavi primarie con relazioni.
Non so dire per Access; per SQLserver talvolta è difficile, quando non impossibile (in presenza di vincoli, soprattutto di quelli autogenerati dai vari case).
Per un db "casalingo"... lascerei stare.
Prima legge dell'informatica: finchè funziona, lascialo stare.
Seconda legge: il meglio è nemico del bene
:lol:
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 15 nov 2017, 14:10

MTAccess ha scritto:Come ci si deve comportare nel caso in cui l'ID da sostituire sia soltanto quello di una tabella figlia, si adotta la procedura 1?

OsvaldoLaviosa ha scritto:Forse ti riferisci a una tabella che rappresenta l'ultimo ramo di una serie di relazioni. Tale tabella avrà un campo ID chiave primaria non legato ad altra tabella. Sì, vale la procedura 1.

Non necessariamente, può essere semplicemente una tabella figlia legata ad una tabella madre da un legame uno a molti, nella quale si pensa di ripristinare la numerazione sequenziale originaria.

Grazie di nuovo per il tuo chiarimento. :wink:
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 15 nov 2017, 14:54

@Alex ha scritto:Mi sembra proprio lo stesso problema... ma veramente molto molto simile...
https://groups.google.com/forum/?hl=it#!topic/it.comp.appl.access/6Gq9horkVXM

Verissimo, evidentemente non è successo soltanto a me.

Interessante questo link http://allenbrowne.com/ser-40.html riportato nella discussione.
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 15 nov 2017, 15:03

+m2+ ha scritto:In realtà è possibile, anche "reimpacchettare" (cioè senza buchi) i numeratori.
Con Access non ti so dire, "senza" sicuramente sì.
Ma la domanda (il "se") sorge spontanea.
Posto che usare campi autoincrementanti in questo modo non è esattamente lungimirante, soprattutto nel caso della necessità di effettuare manutenzione, cosa ti turba, esattamente?
Il mero aspetto "estetico" ?

Bella domanda! f1
Da quello che ho letto, so che il DB può continuare a lavorare senza dare nessun problema, così come lo sta già facendo da anni.
Purtroppo, conoscendomi, so che prima o poi farò anche questa manutenzione f30
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 15 nov 2017, 15:07

@Alex ha scritto:In questi casi effettivamente si evidenzia ancora maggiormente il limite dell'autoincrementale... ma per DB casalinghi ha una comodità notevole.

Questa non l'ho capita, vuoi provare a spiegarmela?
Avatar utente
MTAccess
Utente Junior
Messaggi: 55
Iscritto il: 10 feb 2014, 07:34

Re: Come ripristinare ID corretto?

Messaggioda MTAccess » 15 nov 2017, 15:10

+m2+ ha scritto:Per un db "casalingo"... lascerei stare.
Prima legge dell'informatica: finchè funziona, lascialo stare.
Seconda legge: il meglio è nemico del bene
:lol:

M2, vedo che anche la saggezza ha il suo peso in un forum :wink: f18

Torna a “Microsoft Access”

Chi c’è in linea

Visitano il forum: @Alex, max.riservo e 62 ospiti