Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: VARCHAR-Spalte durch CLOB ersetzen

  Alt 26. Sep 2014, 12:16
SSMS verwendet lustigerweise den 'alter table' Befehl selbst nicht, wenn man im Designer einen Feldtyp ändert, sondern geht den Weg über eine temporäre Tabelle, pseudocode:
To change column X to datatype Y in Table T:
  1. create table T_tmp with column 'X' as 'Y'
  2. copy all fields from T to T_tmp
  3. drop table T
  4. rename T_tmp to T
  5. rebuild all indexes, constraints and stuff on T

Das scheint schneller zu gehen, als ein das alter table. Bei bestimmten Aktionen stimmt das auch.
Ich denke, wenn Du das in eine Transaktion packst, kannst Du einfach den ALTER-Befehl nehmen.
Code:
begin transaction
alter table bar alter column foo CLOB
select * from bar
rollback transaction
wenn Du mit dem Resultat zufrieden bist, machst Du aus dem rollback ein commit und führst das Skript nochmal aus. So mach ich das immer. Der Vorteil ist ja, das man -wenn das Teil abschmiert- das Rollback auch per Hand ausführen kann.
  Mit Zitat antworten Zitat