Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Togliere Identity da colonna
mercoledì 30 maggio 2007 - 11.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gaemon78
Profilo
| Newbie
23
messaggi | Data Invio:
mer 30 mag 2007 - 11:21
Ciao a tutti, io devo ricalcolare i valori di una colonna e devono essere progressivi (tipo identity) ma la colonna NON è IDENTITY.
esempio:
Io ho 1,3,8,9,10,12
e devo ottenere 1,2,3,4,5,6
Il modo più veloce (da Query Analyzer) mi sembrava quello di fare una drop della colonna, reinserirla di tipo IDENTITY e poi togliere l'attributo IDENTITY dalla colonna creata.
Ho 2 problemi
1) Quando faccio la ADD della colonna me la aggiunge sempre in fondo a tutte le altre e io la voglio per prima
(Ho visto che esiste un'opzione FIRST ma non riesco ad utilizzarla
ALTER TABLE NomeTabella
ADD CdNumero INT IDENTITY FIRST
mi da errore di sintassi
)
2) Non so come togliere l'IDENTITY dalla colonna creata
(Con la ALTER TABLE NomeTabella ALTER COLUMN CdNumero INT
Il campo rimane IDENTITY comunque)
Ringrazio chiunque mi possa aiutare
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 30 mag 2007 - 12:30
>Ho 2 problemi
>1) Quando faccio la ADD della colonna me la aggiunge sempre in
>fondo a tutte le altre e io la voglio per prima
>(Ho visto che esiste un'opzione FIRST ma non riesco ad utilizzarla
>ALTER TABLE NomeTabella
>ADD CdNumero INT IDENTITY FIRST
>mi da errore di sintassi
>)
Ciao gaemon78,
Questo è un "non problema" dato che in un RDBMS la posizione delle colonne è ininfluente.
Per quanto riguarda l'opzione FIRST non esiste.
"ALTER TABLE (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms190273.aspx
>2) Non so come togliere l'IDENTITY dalla colonna creata
>(Con la ALTER TABLE NomeTabella ALTER COLUMN CdNumero INT
>Il campo rimane IDENTITY comunque)
Semplice, non puoi.
Prova a definire una nuova Trace con il SQL Profiler, apri Enterprise Manager e modifica la proprietà IDENTITY di una tabella.
Noterai che dietro le quinte EM crea una tabella Tmp_NomeTabella con la nuova impostazione della proprietà, vi copia tutte le righe dalla tabella originale, rimuove la tabella originale ed infine rinomina la tabella Tmp_NomeTabella in NomeTabella mediante la stored procedure di sistema sp_rename.
>Ringrazio chiunque mi possa aiutare
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
gaemon78
Profilo
| Newbie
23
messaggi | Data Invio:
mer 30 mag 2007 - 13:24
Si so che l'ordine è indifferente ma la tabella non è mia ma di un altro utente del DB e volevo lasciarla come la trovo.
Per quanto riguarda l'identity cercherò un'altra soluzione.
Grazie mille.
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !