Newsgroup: it.comp.lang.visual-basic
Titolo: [?] rinominare tabelle

è possibile rinominare una tabella in un DB Access?
io ho trovato l'istruzione sql "RENAME TABLE vecchio TO nuovo", ma nn va
potrei lavorare con i tabledefs, ma nn c'è qualche via + "elegante" ?
ciao
--
*****  ==Max====
*****  ="Stranger"=
= 311GVvAMVI ==
==Post#0x00047==

 potrei lavorare con i tabledefs, ma nn c'è qualche via + "elegante" ?
Sinceramente non ho provato con quello che hai detto. Con DAO non ci sono
problemi.
Scommetto che usi quell'infante di ADO, vero? (senza offesa)

io ho trovato l'istruzione sql "RENAME TABLE vecchio TO nuovo", ma nn va
ALTER TABLE nomevecchio to nomenuovo (ma l'SQL standard vi fa
schifo???) :-(
-- 
Visita il sito comune del NG: 
http://www.it-lang-vb.net
Visit: 
http://www.hardwaretips.com

 Scommetto che usi quell'infante di ADO, vero? (senza offesa)
no, uso DAO e db Access
ciao
--
*****  ==Max====
*****  ="Stranger"=
= 311GVvAMVI ==
==Post#0x00048==

 schifo???) :-(
avevo provato anche quello, ma nn va :(
mi dice syntax error in alter table statement
dbscartelle.execute "ALTER TABLE miacartella TO myfolder"
mah
ciao
--
*****  ==Max====
*****  ="Stranger"=
= 311GVvAMVI ==
==Post#0x00049==

 no, uso DAO e db Access
Se non ti funziona con SQL (ha ragione Lord) e sei in DAO prova con:
db.TableDefs("vecchio_nome").Name = "nuovo_nome"

 db.TableDefs("vecchio_nome").Name = "nuovo_nome"
grazie, funziona
eppure mi sembre di aver provato anch'io una cosa del genere ma mi diceva
che la proprietą
name era di sola lettura... avro bagliato qualcosa
cmq nn importa ora funziona
grazie
ciao
--
*****  ==Max====
*****  ="Stranger"=
= 311GVvAMVI ==
==Post#0x0004A==

 dbscartelle.execute "ALTER TABLE miacartella TO myfolder"
Se non è troppo disturbo scrivere due istruzioni invece che una:
SELECT * INTO Destinazione FROM Originale
DROP TABLE Originale
Ciao
Michele

 ha scritto nel messaggio
news:ScBw8.46196$vF6.1...@news2.tin.it...

Non mi pare che si chiedesse di eliminare una tabella, solo rinominarla



Aggiungo, dopo aver letto meglio ed esprimendo dubbi sulla sintassi:
Ma che per rinominare una tabella si debba 1) Crearne un'altra (con tutta la
sua architettura), 2) duplicare nella nuova tutti i records della vecchia
(tale mi sembra l'intenzione di quella discutibile SELECT *...), 3)
Eliminare la tabella originale?
Abbi pazienza, ma mi sembra piuttosco arzigogolato, sempre a proposito di
eleganza e velocità.
Se non ci sono davvero alternative (ne dubito), voto DAO fino alla morte!

Se non ci sono davvero alternative (ne dubito), voto DAO fino alla morte!
Guarda che in ado alter table funge benissimo! ;)


 Guarda che in ado alter table funge benissimo! ;)
Lord, io non ne dubito (come ho scritto), ma pare che a chi ci ha provato
non funzioni.

non funzioni.
Allora, AFAIK per rinominare le tabelle non va bene usare ALTER TABLE.
I comandi per rinominare le tabelle variano da un database all' altro.
Con Sql Server esiste una stored procedure che si chiama sp_rename,
mentre Oracle, decisamente piu' pratico sotto questo profilo, ha il comando
RENAME e MySql offre ALTER TABLE tbl_name RENAME TO new_name
Con MsAccess, database per modo di dire, penso che occorra usare 
DAO o la soluzione proposta da Michele.
Attendo comunque smentite.
-- 
ciao, hal

DAO o la soluzione proposta da Michele.
Maledetto Jet! :-\


 Se non ci sono davvero alternative (ne dubito), voto DAO fino alla morte!
La sintassi è corretta e questo è un metodo che funziona. Sul fatto che non
sia il massimo dell' eleganza posso anche essere d' accordo, ma con l' SQL
di Jet non credo ci siano tante strade.
Ciao
Michele

 ha scritto nel messaggio
news:bQYw8.12809$8D3.3...@news1.tin.it...

L'SQL di Jet è, questa è la mia idea e affermazione, quanto di più
"operativo" che un bravo progettista ha voluto mettere a disposizione di un
programmatore. Personalmente avrei scritto a lettere cubitali che non è
compatibile con SQL standard, ma, poco male, nemmeno il T-SQL è compatibile
con lo standard, anzi, lo standard non esiste (sempre IMHO).
Non voglio prendere posizioni (che, comunque, sono ormai note), ma io
vieterei l'uso della parola "standard" in informatica o, in subordine (ma mi
candido come boia), taglierei le mani al primo che inventa una cosa (anche
se utilissima) che esce dallo standard. Chi fa lo standard? Questo è il
problema!
Resta il fatto che un povero programmatore, con un anelito di fiducia si
appropinqua a un nuovo strumento di gestione di db, non riesce ad
arrabbiarsi perchè "ma caspita, cosa ci voleva a fare questo, che invece
manca e prima c'era?", ma si butta direttamente dal balcone cantando "ma
perchè in Access questo si scrive così e in SQL Server si scrive così e in
Oracle si scrive così?". Siccome si butta dal quarto piano può pronunciare
in modo intelleggibile queste parole, lasciando, sull'asfalto e l'ultimo
respiro a un sentito: "Bill, tu uccidi un uomo morto".
Fatemi conoscere Bill, mi faccio legare mani e piedi, con una cinghia
stretta a una sedia inchiodata, il cellophane su tutti i pori per bere solo
l'aria che ho nei polmoni. Lasciatemi libera la bocca. Voglio morire
contento.

 contento.
ti sei fumato tutto l'ansi92 ? :)

 ti sei fumato tutto l'ansi92 ? :)
No, mi piacerebbe che esistesse una qualsiasi cosa ANSI, spartana e misera,
ma che permetta con identica sintassi, con Access e con SQL Server, con DAO
e ADO permetta di (poche cose):
1) Creare un database
2) Creare una tabella (con relativi campi) in un database
3) Creare indici in una tabella di un database
4) Eliminare, rinominare e aggiungere Campi, Tabelle e Indici in un database
5) Aggiungere, Modificare e Eliminare records in una tabella di un database
Ora mi lancio in una scommessa con tutto il NG:
Sfido chiunque a dimostrarmi che si può fare tutto ciò con la stessa
sintassi
in Access e in SQL Server, in DAO e in ADO, tutti prodotti M$.
Siccome sono buonissimo e masochista, elimino DAO e ADO e mantengo solo ADO
con Access e SQL Server.
Prima che vi mettiate a ridere, vi sfido ad aggiungere un record con ADO e
SQL Server cursore lato server e a modificarlo subito con l'intento di
riscriverlo. Non contento, vi sfido a creare un recordset con ADO e SQL
Server cursore latore server, cercare il primo record (qualunque
ordinamento), eliminarlo e cercare il (nuovo) primo record per eliminarlo,
sino all'esaurimento dei records del recordset.

 sino all'esaurimento dei records del recordset.
ma se quello che chiedi fosse realizzabile, che ci starebbe a fare la
divisione patch in ms ? imho, ci dev'essere stato un golpe. hanno messo una
patch di bill al posto suo, e stabilito un'organizzazione aziendale
rigidissima, gerarchicamente anarchica.
e poi che tipreoccupi a fare ? incombe 
ado.net
, con, suppongo, 
sql.net
:
alter.table.net
select.net
joi.nt (era 
join.net
, ma anche a redmond c'e' una 
new.age.net
)
...
quando a me basterebbe che gli utenti imparassero a distinguere fra nome e
cognome nel login.
un 
user.net
 e' previsto ?
j.

 un 
user.net
 e' previsto ?
Beh, Java, sei sempre forte (sinceramente). Quoto tutto, ma rispondo solo al
tuo "... che ti preoccupi a fare?...". Devo trasformare (anzi mantenere e
"modellare") un lavoro già funzionante da tempo in DAO+Access per ADO+SQL
Server. Devo farlo funzionare, me lo voglio togliere di torno, poi vivo (mi
accontento) di rendita. Non ne posso più! Ecco perchè vorrei che quelle
centinaia di SELECT che ho già scritto (e tanto altro) possano funzionare
anche in SQLSrv.
Sai cos'ho fatto ieri sera: Una funzione che trasforma un comando SQL per
DAO+Access (con IIf, &, <>0 assenti, apici doppi, etc) in una sintassi
compatibile con ADO+SQLSrv. La prima bozza funziona (!) e ho così evitato un
sacco di lavoro. La domanda è sempre quella: perchè io, perchè tu e tutti
gli altri? Perchè non, una volta sola, M$ o ANSI o l'enesima commissione del
cavolo? Madonnina mia!