DROP для таблиц
Оператор DROP можно использовать не только для баз данных, а и для таблиц. Мы уже рассматривали варианты как можно очистить базу данных от значений с помощью операторов DELETE и TRUNCATE. Однако с помощью оператора DROP мы можем не просто очистить таблицу, а и полностью удалить её из нашей базы данных.
Итак, создадим таблицу, которую впредь мы будем удалять:
create table TableForDrop
(
idField int IDENTITY(2,5), -- IDENTITY(2,5) - начальный инкремент = 2, шаг = 5.
SomeField1 char(30) default 'empty', -- если пользователь не заполнит это поле, то значение поля автоматически станет "empty"
SomeField2 char(30) NULL,
SomeField3 char(30) NULL,
SomeField4 char(30) NULL
)
go
А теперь давайте удалим её. Синтаксис для удаления невообразимо прост.
drop table TableForDrop
go
Единственное что нужно железно запомнить - необходимо обязательно указывать, что конкретно мы будем удалять. В данном случае мы уточняем, что удалять мы будем именно таблицу, название которой - TableForDrop.
ALTER для таблиц
Увидев, что для таблиц мы можем использовать оператор DROP с таким же успехом что и для БД, наверняка у многих из вас мог возникнуть вопрос: "А с помощью ALTER мы тоже можем модифицировать таблицы?".
Ответ - да, конечно можем)
Представим ситуацию, что мы создали таблицу, но потом обнаружили что забыли вставить туда какую-то колонку. Как же быть? Неужели придётся удалять таблицу и создавать её заново, уже дописывая недостающие колонки?
Благо, с помощью оператора ALTER мы можем добавить или удалить колонку в таблице намного быстрее и проще.
Итак, давайте создадим ещё одну таблицу, и назовём её Customers:
create table Customers
(
idField int IDENTITY(1,2),
CustomerName char(20) not null,
CustomerSurname char(25) null,
CustomerPhone char(10) not null,
CustomerEmail char(45) default 'unknown',
RegistrationTime date default getdate()
)
with(data_compression = row)
go
Вы не могли не заметить строку, которую раньше не встречали:
with(data_compression = row)
go
Используется она для того что бы сжать данные по строкам. Таким образом увеличивается производительность и уменьшается размер данных в БД. Правда доступна такая функция не во всех версиях MSSQL Server (в последней версии такая функция определённо должна быть). Попробуйте на досуге)
А теперь давайте добавим новую колонку в нашу таблицу Customers:
alter table Customers -- добавление новой колонки в таблицу.
add
NewField1 char null
go
Думаю, тут команды интуитивно понятны и без лишних объяснений)
А теперь представим ситуацию, что мы наоборот сделали на одну колонку больше чем нам требуется. В таком случае нужно эту колонку удалить:
alter table Customers -- удаление существующей колонки из таблицы.
drop column NewFIeld1 -- DROP COLUMN - удаляет колонку
go
Ну что же, наигравшись вдоволь, давайте удалим и нашу таблицу:
drop table Customers;
go