2010-06-17 4 views
31

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

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

Comment faire cela dans SQL Server?

L'erreur que je reçois pour cette syntaxe exacte est incorrect syntax near the keyword 'set'

Répondre

63

Utilisation:

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

Pour plus d'informations, voir: Working with Default Constraints

+1

Ajouté le 'for' peu pour vous .. – Earlz

+0

@Earlz: Vu que, le plus apprécié :) –

+0

maintenant il suffit d'attendre 3 minutes de plus ... – Earlz

6

Si vous voulez changer la valeur par défaut d'un déjà existant colonne. Vous devez d'abord supprimer la contrainte, puis ajouter la contrainte encore une fois comme ci-dessous

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME> 

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

Si vous n'êtes pas d'avoir les détails de contrainte de la table, vous pouvez utiliser la requête ci-dessous

sp_helpconstraint <TABLE> 
Questions connexes