web-dev-qa-db-ja.com

既存の列にデフォルト値を追加する方法は?

SQL Serverデータベースに既存の列があります。考えられることはすべて試しましたが、列に追加するデフォルト値を取得できません。他のすべてのデータベースで機能するのは

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

SQL Serverでこれを行うにはどうすればよいですか?

その正確な構文で得られるエラーはincorrect syntax near the keyword 'set'

35
Earlz

使用する:

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

詳細については、以下を参照してください。 デフォルトの制約の使用

71
OMG Ponies

既存の列のデフォルト値を変更する場合。以下のように、最初に制約を削除してから、もう一度制約を追加する必要があります

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

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

テーブルの制約の詳細がない場合は、次のクエリを使用できます

sp_helpconstraint <TABLE>
7
suryakiran