私はテーブル[商品]にカラム[CreateTime] datetime nullがあり、既にデータがあります。SQL Server 2005で列の既定値を変更するためにsqlを書き込む方法は?
[CreateTime]列のデフォルト値をgetdate()に設定し、新しい追加データに[CreateTime]列のデフォルト値getdate()を設定する方法を教えてください。
私はテーブル[商品]にカラム[CreateTime] datetime nullがあり、既にデータがあります。SQL Server 2005で列の既定値を変更するためにsqlを書き込む方法は?
[CreateTime]列のデフォルト値をgetdate()に設定し、新しい追加データに[CreateTime]列のデフォルト値getdate()を設定する方法を教えてください。
デフォルトを変更することはできません。最初に削除してから再作成する必要があります。その後、
それをドロップするためには、あなたがその名前を知っている必要があり、そしてあなたは、新しいデフォルトの制約を追加することができ、ことを行って、既存のにそれを適用するためにしたら
ALTER TABLE dbo.Product
DROP CONSTRAINT yourOldDefaultConstraint
を使用行は、「WITH VALUES」の部分を使用します。
ALTER TABLE dbo.Product
ADD CONSTRAINT NewDefaultConstraintName
DEFAULT GetDate() FOR CreateTime WITH VALUES
おっと - 申し訳ありませんが、唯一のあなたは、あなたがテーブルを作成する際にDEFAULT制約を作成した場合に動作するよう、または「VALUES WITH」は、列を追加した場合 - 既存の列には適用されないようです。あまりにも、トリックを行う必要があります
UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
:あなたはこのような何かを使用してALTER TABLE文に従わなければならない。この場合
!
マーク
ありがとうございました。 – Mike108