Denny Biasiolli Website

MS Access - Cambiare AllowZeroLength (consenti lunghezza zero) tramite query

Aug 22, 2013

Oggi pomeriggio ho avuto la necessità di cambiare la proprietà "AllowZeroLength" (consenti lunghezza zero) su una colonna di un database Access tramite il nostro sistema di aggiornamenti automatici.
Premetto che sarebbe possibile farlo tramite procedure che interagiscono con le proprietà ADOX, ma la mia esigenza era quella di modificarle direttamente tramite query. Ecco quindi che dopo un attimo di smarrimento alla ricerca di una soluzione magica su Google, ho avuto l'illuminazione.
Immaginiamo che il nome della tabella da cambiare sia "myTable" e il campo su cui modificare le proprietà sia "myField", la soluzione consiste nell'aggiungere un nuovo campo di appoggio chiamato "myField__tmp"; successivamente si copia il valore del campo di origine nel campo d'appoggio, si elimina il campo di origine e si ricrea con le proprietà corrette (nel mio caso dovevo consentire l'AllowZeroLength); infine si copia il valore del campo d'appoggio in quello di origine e si elimina il campo d'appoggio. Ecco un esempio pratico:

ALTER TABLE myTable ADD myField__tmp TEXT(15) NULL;
UPDATE myTable SET myField__tmp=myField;
ALTER TABLE myTable DROP COLUMN myField;
ALTER TABLE myTable ADD myField TEXT(15) NULL;
UPDATE myTable SET myField=myField__tmp;
ALTER TABLE myTable DROP COLUMN myField__tmp;

Spero di essere stato d'aiuto, buon lavoro!

Contacts

DB di Denny Biasiolli
Corso Giacomo Matteotti, 24
12038 Savigliano (CN) - Italy
P.IVA IT03918020045

Need to get in touch with me? No problem! Just shoot me an email. I'm always happy to chat about life, technology, or anything in between. And if you're feeling really adventurous, you can even try sending a carrier pigeon. Just don't be surprised if it gets lost on the way.