2010-06-17 9 views
31

Tôi có một cột hiện có trong cơ sở dữ liệu SQL Server của mình. Tôi đã thử tất cả mọi thứ tôi có thể nghĩ đến nhưng không thể có được một giá trị mặc định được thêm vào cột. Điều gì làm việc trong mọi cơ sở dữ liệu khác làLàm cách nào để thêm giá trị mặc định vào cột đã có?

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

Làm cách nào để thực hiện điều này trong SQL Server?

Các lỗi tôi nhận được cho rằng cú pháp chính xác là incorrect syntax near the keyword 'set'

Trả lời

63

Sử dụng:

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

Mọi chi tiết, xem: Working with Default Constraints

+1

gia tăng các 'for' bit cho bạn .. – Earlz

+0

@Earlz: Thấy rằng, được đánh giá cao nhất :) –

+0

bây giờ chỉ cần đợi thêm 3 phút nữa ... – Earlz

6

Nếu bạn muốn thay đổi giá trị mặc định của một đã tồn tại cột. Bạn cần phải đầu tiên thả các hạn chế và sau đó thêm các hạn chế trên một lần nữa như sau

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME> 

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

Nếu bạn không có các chi tiết Hạn chế của bảng, bạn có thể sử dụng truy vấn dưới đây

sp_helpconstraint <TABLE>