Jeśli spojrzeć na ALTER TABLE SYTAX
zobaczysz ten
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 ]
ta może być zmniejszona do
ALTER TABLE { ALTER COLUMN column_name | ADD | DROP }
Według Transact-SQL Syntax Conventions (Transact-SQL)| (pionowy pasek)
Oddziela pozycje składni ujęte w nawiasy lub nawiasy klamrowe. Możesz użyć tylko jednego z przedmiotów.
Nie można zmienić, upuścić ani dodać pojedynczego wyciągu. Masz również parens i przecinek, które nie będą działać. Więc trzeba
ALTER TABLE Grades DROP COLUMN (Student_FamilyName, Student_Name);
ALTER TABLE Grades ADD Student_id INT;
Jeśli trzeba je za działanie atomowy wystarczy zawinąć w transakcji
nie można zrobić kroplę i stworzyć jedną aLTER, oddziel je –
przełączyć do PostgreSQL (kaszel), który wspiera wiele [zmiany] (http: //www.postgresql. lub g/docs/currrent/static/sql-altertable.html) jako rozszerzenie standardowej składni SQL. (Chociaż często korzystam z PostgreSQL, zazwyczaj * piszę SQL, który unika rozszerzeń.) –
Którego DBMS używasz? Wyrocznia? DB2? –