web-dev-qa-db-fra.com

Comment ajouter une valeur par défaut à une colonne déjà existante?

J'ai une colonne existante dans ma base de données SQL Server. J'ai essayé tout ce à quoi je peux penser, mais je ne peux pas obtenir de valeur par défaut à ajouter à la colonne. Ce qui fonctionne dans toutes les autres bases de données est

alter table mytable 
  alter column mycolumn set default(now()) --mycolumn is a datetime

Comment faire cela dans SQL Server?

L'erreur que j'obtiens pour cette syntaxe exacte est incorrect syntax near the keyword 'set'

35
Earlz

Utilisation:

ALTER TABLE dbo.mytable
ADD CONSTRAINT def_mycolumn DEFAULT GETDATE() FOR mycolumn

Pour plus d'informations, voir: tilisation des contraintes par défaut

71
OMG Ponies

Si vous souhaitez modifier la valeur par défaut d'une colonne déjà existante. Vous devez d'abord supprimer la contrainte, puis ajouter à nouveau la contrainte comme ci-dessous

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

ALTER TABLE <TABLE> 
ADD CONSTRAINT <CONSTRAINT NAME> DEFAULT <VALUE> for <COLUMN>

Si vous ne disposez pas des détails de contrainte du tableau, vous pouvez utiliser la requête ci-dessous

sp_helpconstraint <TABLE>
7
suryakiran