Numerare un campo in tabella preesistente

giovedì 08 marzo 2007 - 12.33

trisy Profilo | Newbie

Ciao a tutti intanto,

la domanda è:

ho una tabella a cui devo aggiungere un campo progressivo che diverrà chiave, ma come faccio a inserire un valore progressivo a questo nuovo campo?

grazie!

P.S.: io ho a disposizione SQL server 2005

alx_81 Profilo | Guru

>Ciao a tutti intanto,
Ciao!

>la domanda è:
>
>ho una tabella a cui devo aggiungere un campo progressivo che
>diverrà chiave, ma come faccio a inserire un valore progressivo
>a questo nuovo campo?
La cosa più semplice che mi viene sul momento è creare una nuova tabella con un campo identity chiave, e poi inserire i record dalla tabella di partenza(alla fine drop della "vecchia" e rinomini la nuova con il nome della tabella di partenza).
eccoti un esempio:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Attenzione se la tabella è referenziata da Foreign Key, perchè in quel caso ti tocca dropparle e ricrearle una volta che hai effettuato l'operazione di spostamento..
Tra l'altro se non ricordo male, questa è l'operazione che SQL Server fa in maniera trasparente quando aggiungi una colonna identity da designer ad una tabella già esistente..
Magari puoi pensare di mettere il tutto sotto transazione, facendo rollback in caso di errore.. ma la gesitione dell'errore la lascio a te,



>
>grazie!
Di nulla!
>
>P.S.: io ho a disposizione SQL server 2005

Alx81 =)

http://blogs.dotnethell.it/suxstellino
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5