Abbiamo due colonne in un database che è attualmente di tipo varchar (16). Il fatto è che contiene numeri e sempre conterrà numeri. Pertanto, vogliamo cambiare il suo tipo in intero. Ma il problema è che ovviamente contiene già dei dati.Cambia il tipo di una colonna con i numeri da varchar a int
C'è un modo per modificare il tipo di quella colonna da varchar a int e non perdere tutti quei numeri che sono già presenti? Speriamo che una sorta di sql possiamo solo eseguire, senza dover creare colonne temporanee e creare un programma C# o qualcosa per fare la conversione e così via ... Immagino che potrebbe essere piuttosto semplice se SQL Server ha qualche funzione per convertire le stringhe in numeri, ma io sono molto instabile su SQL. Praticamente funziona solo con C# e accede al database tramite LINQ a SQL.
Nota: Sì, rendere la colonna un varchar in primo luogo non era un'idea molto buona, ma sfortunatamente è così che l'hanno fatto.
# tmp è un nome casuale di una tabella tmp? – Svish
Buona risposta: eseguirò questa prima opzione - seleziona cast (silly_column come int), other_columns da bad_table Per assicurarti che non ci siano problemi di conversione e che siano tutti di fatto inte. – brendan
Di tutti i nomi che ho inventato, hai fatto un'osservazione sul # tmp? – cjk