Buongirono a tutti,
0
Vengo subito al problema.
Vorrei sapere come è possibile cambiare il datatype di una colonna da ntext a varchar(4000) tramite una query.
Grazie in anticipo.
Buongirono a tutti,
0
Vengo subito al problema.
Vorrei sapere come è possibile cambiare il datatype di una colonna da ntext a varchar(4000) tramite una query.
Grazie in anticipo.
alter table nome_tabella alter column nome_colonna tipo_da_aggiornare
avevo già provato con questo metodo, ma non funziona in quanto mi dice che non posso modificare perchè la colonna è di tipo ntext
C'è qualcuno che conosce una soluzione???
ho cercato un pò in giro e l'unica soluzione possibile è aggiungere una nuova colonna, lanciarci un UPDATE che imposti il valore leggendo il contenuto della vecchia colonna ntext e poi droppare la colonna ntext
il problema potrebberò essere eventuali vincoli/referenziazioni che sono da passare
dopo che droppi la vecchia colonna rinomini la nuova con il nome della vecchia
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
Grazie per questa prima soluzione.
Solo una cosa.
Per spostare i valori dalla colonna di tipo ntext a quella varchar dovrei fare comunque un ciclo. Giusto?
In caso affermativo, ci sarebbero problemi a scrivere valori ntext in varchar(4000)???
Spero mi sono spiegato bene...
Ho provato con la procedura da te consigliatomi e funziona...
Di seguito riporto un'esempio in modo che potrà essere utili a qaulcun altro..
--Rinominare la colonna ntext
EXEC sp_rename 'Tabella.Colonna', 'Nuovo nome della colonna', 'COLUMN'
--Aggiungere nuova colonna
ALTER TABLE Tabella ADD Colonna varchar(xxxx) ' Numero caratteri
--Inserimento valori dalla colonna rinominata ntext in quella appena creata
UPDATE Tabella set ColonnaCreata = SUBSTRING(ColonnaRinominata,1,xxxx)
--Eliminazione Colonna Rinominata
ALTER TABLE Tabella DROP COLUMN Colonna Rinominata
Inoltre, ho notatto che se si eseguono tutti i passi in contemporanea genere un errore al terzo passo. Questo perchè la colonna ancora deve essere rinominata.
Per ovviare bisogna inserire un ciclo do all'interno della tabella Information.Schema.Columns affinchè non trova la colonna rinominata...
Spero di essere stato chiaro...
Saluti