Find datatypen
Jeg skal skrive et script der ændrer datatypen for en kolonne i en tabel fra NVARCHAR til NTEXT. Fint nok - ingen problemer via ALTER TABLE [..] ALTER COLUMN [..]. Problemet er at scriptet skal kunne tåle at blive kørt flere gange og SQL Server brokker sig hvis man forsøger at ændre kolonner af typen text, image, ntext, eller timestamp. Derfor skal jeg tilføje en kontrol der undersøger om datatypen allerede er blevet ændret til NTEXT, inden scriptet prøver at ændre den. Der må være en mere intelligent måde at gøre det på end at kopiere al eksisterende data ud, slette kolonnen, oprette den igen med den rigtige datatype og kopiere data ind.Altså, noget i stil med:
IF [datatypen for kolonnen X i tabellen Y] = NVARCHAR
BEGIN
ALTER TABLE Y ALTER COLUMN X NTEXT
END
Jeg tror at løsningen muligvis kan findes ved at bruge SP'en "sp_columns" eller via funktionen COLUMNPROPERTY.