Hãy nói rằng bạn tạo một bảng cơ sở dữ liệu cho một hệ thống đăng ký.
IF OBJECT_ID('dbo.registration_demo', 'U') IS NOT NULL
DROP TABLE dbo.registration_demo;
CREATE TABLE dbo.registration_demo (
id INT IDENTITY PRIMARY KEY,
name NVARCHAR(8)
);
Hiện tại, có một vài người đăng ký.
INSERT INTO dbo.registration_demo (name) VALUES
('John'),('Jane'),('Jeff');
Sau đó, bạn nhận ra rằng bạn cần dấu thời gian khi đăng ký.
Nếu ứng dụng này bị giới hạn ở khu vực địa lý được địa lý hóa, thì bạn có thể sử dụng thời gian máy chủ cục bộ với GETDATE()
. Nếu không, bạn nên chú ý đến số Tanner's consideration cho đối tượng chung với GETUTCDATE()
cho giá trị mặc định.
Thêm cột có giá trị mặc định trong một tuyên bố như this answer.
ALTER TABLE dbo.registration_demo
ADD time_registered DATETIME DEFAULT GETUTCDATE();
Hãy tìm người đăng ký khác và xem dữ liệu trông như thế nào.
INSERT INTO dbo.registration_demo (name) VALUES
('Julia');
SELECT * FROM dbo.registration_demo;
id name time_registered
1 John NULL
2 Jane NULL
3 Jeff NULL
4 Julia 2016-06-21 14:32:57.767
Nguồn
2016-06-21 14:49:16
@TheQ - Cảm ơn. Tôi hiểu rằng tôi thay đổi "YourTable" thành tên bảng của tôi, nhưng phần tôi không hiểu là Hạn chế. Ràng buộc là gì và tôi có sửa đổi mã của bạn để khớp với tên bảng của tôi không? – stephmoreland
@steph - Câu trả lời của 'TheQ' giả định bạn đang thay đổi cột hiện tại mà tôi không tin là trường hợp đó? Xem câu trả lời của tôi cho mã để thêm một cột mới với ràng buộc mặc định này. –
Để một cột có giá trị mặc định, cột cần "ràng buộc mặc định" và lệnh này sẽ thêm giá trị đó. Bạn có thể đặt tên cho ràng buộc bất cứ thứ gì bạn thích, Management Studio thường đặt tên chúng là DF_TableName. – TheQ