56 messaggi dal 26 ottobre 2001
ciao a tutti
sto cercando di creare una procedura di archiviazione di dati su db access.
ho una tabella "nometabella" che nel corso del 2004 si è alimentata con quasi 10.000 record.
pensavo di rinominarla come "nometabella_2004" e crearne una copia vuota "nometabella" per i

dati dell'anno in corso.
(l'alternativa potrebbe essere quella di spostare i dati da "nometabella" a

"nometabella_2004" ma in questo modo non so come fare per riprendere la numerazione dell'id

da 1)
su access l'operazione è semplice: rinomina/copia/incolla.
su codice no!
ho provato diversi sql tipo:
ALTER TABLE RENAME nometabella TO nometabella_2004
ALTER TABLE nometabella RENAME nometabella_2004
RENAME TABLE nometabella TO nometabella_2004
...
ma nessuno di questi funzia.
avete idea di come fare?

intanto approfitto per augurare a tutti un fantastico
2  5
2.907 messaggi dal 15 maggio 2001
Contributi
SQL = "INSERT INTO nometabella_2004 SELECT * FROM nometabella"

Esegui questa query e ti crei la copia di bakup...

Salutoni e buon anno anche a te !
56 messaggi dal 26 ottobre 2001
ciao Rome
l'sql che mi hai dato funziona però non mi risolve il problema del contatore.
io devo creare una nuova tabella.
se creo "nometabella_2004" conservo "nometabella" così com'è e anche se la svuoto la numerazione continua sempre da 10.001.
per questo motivo pensavo di rinominare "nometabella" in "nometabella_2004" e creare una nuova "nometabella" in modo da far riprendere il contatore da 1.
però non solo non riesco a farlo ma non riesco neanche ad azzerare il contatore.
sai mica se c'è un modo per farlo?

grazie
2.907 messaggi dal 15 maggio 2001
Contributi
Allora,
potresti fare così :

1)Usa la query di prima e ti crei la copia nometabella_2004
2) Cancelli la tabella così : Sql ="DROP TABLE nometabella"
3) Ricrei la tabella così :

CREATE TABLE nometabella
(
id int,
colonna1 varchar,
colonna2 varchar
)

Possibili scelte per i tipi di campo.

integer(dimensione)
int(dimensione)
smallint(dimensione)
tinyint(dimensione) Per gli interi, il numero Massimo di cifre è specificato tra parentesi.


decimal(dimensione,d)
numeric(dimensione,d)
Contiene numeri decimali, il numero Massimo di cifre è specificato tramite "dimensione". Il numero massimo di decimali è specificato in "d".


char(dimensione) Per stringhe di lunghezza fissa (può contenere lettere, numeri e caratteri speciali). La lunghezza fissa è specificata tra parentesi.
varchar(dimensione)
Può contenere stringhe di lunghezza variabile. (può contenere lettere, numeri e caratteri speciali). La lunghezza massima è specificata tra parentesi.

date(ggmmaaaa) Per le date


Se vuoi crearti l'indice nella tabella ("x esempio id") devi scrivere a questo punto

CREATE UNIQUE INDEX id ON NomeTabella (id)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.