Bạn có ba vấn đề:
- Bạn kết thúc câu lệnh bằng
;
ở cuối dòng mã thứ hai của bạn. - Bạn có
FOR MEMBER_ID
trong câu lệnh cuối cùng, có lẽ phải làFOR Sys_date
. - Bạn lặp lại
ADD
nhưng không phải .
Giả sử cấu trúc bảng này:
CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);
DDL này sẽ hoạt động:
ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID),
CONSTRAINT Sys_date DEFAULT GETDATE() FOR Sys_date;
Xem sqlfiddle này .
Bạn có thể về mặt lý thuyết cũng thấy điều này trên trang của MSDN trên ALTER TABLE
, mặc dù tôi sẵn sàng thừa nhận rằng những thông số kỹ thuật đó có thể khó đọc. Đây là một điểm khó hiểu về cách họ giải thích điều đó:
ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name
{
ALTER COLUMN column_name
-- Omitted....
| ADD
{
<column_definition>
| <computed_column_definition>
| <table_constraint>
| <column_set_definition>
} [ ,...n ]
-- Omitted....
ADD
từ khóa xuất hiện một lần và } [ ,...n ]
bit cho bạn biết rằng bạn có thể lặp lại bit giữa {brackets} n
lần, được phân tách bằng ,
.