38

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

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

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

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

4

2 に答える 2

75

使用する:

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

詳細については、次を参照してください:デフォルトの制約の操作

于 2010-06-17T00:14:45.863 に答える
8

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

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

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

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

sp_helpconstraint <TABLE>
于 2011-05-04T12:27:18.387 に答える