Nếu bạn nhìn vào ALTER TABLE SYTAX
bạn sẽ thấy điều này
ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name
{
ALTER COLUMN column_name
{
[ type_schema_name. ] type_name [ ({ precision [ , scale ]
| max | xml_schema_collection }) ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ] [ SPARSE ]
| {ADD | DROP }
{ ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION | SPARSE }
}
| [ WITH { CHECK | NOCHECK } ]
| ADD
{
<column_definition>
| <computed_column_definition>
| <table_constraint>
| <column_set_definition>
} [ ,...n ]
| DROP
{
[ CONSTRAINT ]
{
constraint_name
[ WITH
(<drop_clustered_constraint_option> [ ,...n ])
]
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
} [ ,...n ]
này có thể được giảm xuống còn
ALTER TABLE { ALTER COLUMN column_name | ADD | DROP }
Theo Transact-SQL Syntax Conventions (Transact-SQL) các | (thanh dọc)
Phân tách các mục cú pháp kèm theo trong ngoặc đơn hoặc dấu ngoặc ôm. Bạn chỉ có thể sử dụng một trong các mục.
Vì vậy, bạn không thể thay đổi, thả hoặc thêm trong một tuyên bố đơn lẻ. Bạn cũng có parens và dấu phẩy sẽ không hoạt động. Vì vậy, bạn sẽ cần
ALTER TABLE Grades DROP COLUMN (Student_FamilyName, Student_Name);
ALTER TABLE Grades ADD Student_id INT;
Nếu bạn cần họ là một hành động nguyên tử bạn chỉ cần quấn trong giao dịch
Nguồn
2013-04-13 16:20:26
Bạn không thể thực hiện thả và tạo bằng một câu lệnh thay đổi, tách riêng nó –
Bạn chuyển sang PostgreSQL (ho), hỗ trợ [nhiều thay đổi] (http: //www.postgresql. hoặc là g/docs/currrent/static/sql-altertable.html) dưới dạng phần mở rộng cho cú pháp SQL chuẩn. (Nhưng mặc dù tôi sử dụng PostgreSQL rất nhiều, tôi * thường * viết SQL tránh các phần mở rộng.) –
Bạn đang sử dụng DBMS nào? Oracle? DB2? –