Gå til innhold

Hvordan oppdatere/endre default verdi til en kolonne?


Anbefalte innlegg

ALTER TABLE Alarmliste ALTER COLUMN AlarmNummer int; Er gyldig SQL.

 

ALTER TABLE Alarmliste ALTER COLUMN AlarmNummer DEFAULT default_value; Fungerer ikke.

 

Noen som vet hvordan man endrer default verdien til kolonner i SQL (MS SQLServer 2005)?

 

Mvh

 

Francis :)

Endret av :Francis:
Lenke til kommentar
Videoannonse
Annonse

Har kommet et stykke på vei, men sliter fortsatt litt:

 

select distinct sysobjects.name

from sysobjects, syscolumns, syscomments

where sysobjects.parent_obj = syscolumns.id

AND syscomments.id = sysobjects.id

AND sysobjects.xtype = 'D'

AND syscolumns.name = 'col1'

 

Skulle ikke returnere kun 1 rad?

 

I mitt tilfelle returnerer spørringen default constraint navnene på alle kolonnene i tabellen.

 

ALTER TABLE tab1 DROP CONSTRAINT Df_test_col1

ALTER TABLE tab1 WITH NOCHECK ADD CONSTRAINT [Df_test_col1] DEFAULT (1) FOR col1

 

Fjerning å skriving av constraints fungerer, problemet er altså at jeg får returnert for mange constraints siden jeg skal bruke resultatet fra den første spørringen i den som fjerner constrainten.

 

Francis

Lenke til kommentar
ALTER TABLE Alarmliste ALTER COLUMN AlarmNummer int; Er gyldig SQL.

 

ALTER TABLE Alarmliste ALTER COLUMN AlarmNummer DEFAULT default_value; Fungerer ikke.

 

Noen som vet hvordan man endrer default verdien til kolonner i SQL (MS SQLServer 2005)?

 

Mvh

 

Francis :)

 

Prøv ALTER TABLE Alarmliste ADD CONSTRAINT DF_AlarmNummer DEFAULT <verdi> FOR AlarmNumber;

 

Werner

Lenke til kommentar

Takk for svar :)

 

Msg 1781, Level 16, State 1, Line 1
Column already has a DEFAULT bound to it.
Msg 1750, Level 16, State 0, Line 1
Could not create constraint. See previous errors.

 

Må fjerne gjeldende constraint først, er derfor jeg har den første spørringen hvor jeg forsøker å returnere navnet på default verdi constrainten :).

 

Francis

Lenke til kommentar

select distinct sysobjects.name

from sysobjects, syscolumns, sysconstraints

where

sysobjects.id = sysconstraints.constid

and sysconstraints.id = syscolumns.id

and sysobjects.xtype = 'D'

and syscolumns.name = 'Alarmtekst'

 

Returnerer navnet på default constrainten slik at jeg kan bruke resultatet av denne spørringen for å slette gjeldende constraint for å så eventuelt legge til en ny.

 

Kunne jeg skrevet denne spørringen vha JOIN også?

 

Francis

Lenke til kommentar

Spørringen over gjorde ikke akkurat det jeg ville, denne fungerer derimot eksemplarisk til å returnere default verdi constraint navnet på en kolonne:

 

SELECT sysObj.name
FROM sysobjects AS sysObj
JOIN syscolumns AS sysCol ON sysobj.id = sysCol.cdefault
WHERE sysCol.name = 'Alarmtekst';

 

Francis

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...