Avatar billede chjo96ac Nybegynder
22. maj 2006 - 22:46 Der er 2 kommentarer og
1 løsning

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.
Avatar billede arne_v Ekspert
22. maj 2006 - 22:52 #1
noget a la:

SELECT TABLE_NAME,COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE='nvarchar'
Avatar billede chjo96ac Nybegynder
24. maj 2006 - 00:49 #2
Lige i øjet!
Avatar billede arne_v Ekspert
24. maj 2006 - 02:01 #3
så vil jeg da ligge et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester