0
我有一個表[產品]與列[CreateTime]日期時間爲空,並且已經有一些數據。如何寫SQL設置改變在SQL Server 2005中的列的默認值?
如何設置列的[CreateTime]默認值GETDATE(),使新增加的數據有一個默認值GETDATE()列[CreateTime。
我有一個表[產品]與列[CreateTime]日期時間爲空,並且已經有一些數據。如何寫SQL設置改變在SQL Server 2005中的列的默認值?
如何設置列的[CreateTime]默認值GETDATE(),使新增加的數據有一個默認值GETDATE()列[CreateTime。
您不能更改默認的 - 你需要先刪除它,然後重新創建它。
才能刪除它,你需要知道它的名字,然後用
ALTER TABLE dbo.Product
DROP CONSTRAINT yourOldDefaultConstraint
一旦你做到了這一點,你可以添加一個新的默認約束,爲了將它應用到現有的行,請使用「使用值」部分:
ALTER TABLE dbo.Product
ADD CONSTRAINT NewDefaultConstraintName
DEFAULT GetDate() FOR CreateTime WITH VALUES
哎呀 - 對不起,在「使用值」似乎只如果您創建在創建表時DEFAULT約束工作,或者如果您添加列 - 它似乎並沒有得到應用到現有列。
在這種情況下,您只需要按照你的ALTER TABLE語句是這樣的:
UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
這應該做的伎倆,太!
Marc
非常感謝。 – Mike108 2009-09-01 04:47:23