Россия, г. Санкт-Петербург |
Управление таблицами с помощью T-SQL и Enterprise Manager
Добавление или удаление свойства ROWGUIDCOL Property
Чтобы добавить к колонке или удалить из колонки свойство ROWGUIDCOL, используйте следующий синтаксис:
ALTER TABLE <имя_таблицы> ALTER COLUMN <имя_колонки> ADD | DROP ROWGUIDCOL
Свойство ROWGUIDCOL можно добавлять только в колонку типа uniqueidentifier. Если предположить, что в нашу таблицу Bicycle_Sales была включена колонка типа uniqueidentifier с именем unique_id, то вы могли бы добавить свойство ROWGUIDCOL с помощью следующего оператора:
ALTER TABLE Bicycle_Sales ALTER COLUMN unique_id ADD ROWGUIDCOL GO
И вы могли бы удалить это свойство с помощью следующего оператора:
ALTER TABLE Bicycle_Sales ALTER COLUMN unique_id DROP ROWGUIDCOL GO
Добавление колонок
С помощью оператора ALTER TABLE вы можете также добавлять колонки к таблице. Определение колонок происходит почти одинаково – будь то создание или изменение таблицы. Вы должны присвоить колонке имя и тип данных и можете дополнительно присваивать другие атрибуты, свойства и ограничения.
Добавляя колонку с атрибутом NOT NULL, вы должны также объявить значение по умолчанию, чтобы это значение появилось в новой колонке уже существующих строк. Это значение по умолчанию задается с помощью ключевого слова DEFAULT. Чтобы добавить колонку, используйте следующий синтаксис:
ALTER TABLE <имя_таблицы> ADD <имя_колонки> <тип_данных> <null-атрибут> DEFAULT значение_по_умолчанию
Например, чтобы добавить к таблице Bicycle_Sales колонку с именем salesperson_id (идентификатор продавца), используйте следующий оператор. (В новой колонке не допускаются null -значения, и она имеет значение по умолчанию, равное 0.)
ALTER TABLE Bicycle_Sales ADD salesperson_id tinyint NOT NULL DEFAULT 0 GO
Поскольку колонка объявлена как NOT NULL, то во всех существующих строках таблицы в новую колонку будет занесено значение 0.
Если вместо этого колонка salesperson_id будет объявлена как NULL (см. ниже), то значение по умолчанию не будет обязательным:
ALTER TABLE Bicycle_Sales ADD salesperson_id tinyint NULL DEFAULT 0 --Необязательное значение по умолчанию GO
Несмотря на то, что мы задали значение по умолчанию, в колонку salesperson_id существующих строк будет занесено значение NULL, а значение по умолчанию будет присваиваться только в новых строках.
Чтобы в существующих строках вместо значения NULL также было присвоено значение по умолчанию (0), используйте в ключевом слове DEFAULT опцию WITH VALUES, как это показано ниже:
ALTER TABLE Bicycle_Sales ADD salesperson_id tinyint NULL DEFAULT 0 WITH VALUES GO
Опция WITH VALUES указывает, что во всех существующих строках новой колонке будет присвоено вместо значения NULL значение по умолчанию.
Удаление колонок
Вы можете также использовать оператор ALTER TABLE для удаления колонок из таблицы. Все данные удаленной колонки будут удалены из таблицы. При использовании T-SQL для удаления колонок вы не можете удалять следующие типы колонок.
- Колонка, используемая в ограничении primary key, foreign key, unique или check.
- Колонка, используемая для репликации.
- Колонка, используемая в индексе (если не удалить сначала этот индекс).
- Колонка, ограниченная каким-либо правилом.
- Колонка, связанная со значением по умолчанию.
![](icon2.gif)
Для удаления колонки из таблицы используйте следующий синтаксис:
ALTER TABLE <имя_таблицы> DROP COLUMN <имя_колонки>
Следующий оператор удаляет колонку description из таблицы Bicycle_Sales:
ALTER TABLE Bicycle_Sales DROP COLUMN description GO
Колонка description и все ее значения удаляются изо всех строк таблицы.
![](icon5.gif)
Переименование колонок
Чтобы переименовать колонку с помощью операторов T-SQL, вы должны запустить системную хранимую процедуру sp_rename, используя следующий синтаксис:
sp_rename 'таблица.исходное_имя_колонки', 'новое_имя_колонки', 'COLUMN'
Например, чтобы заменить имя колонки description на Bicycle_desc, вам нужно использовать следующий оператор:
sp_rename 'Bicycle_Sales.description', 'bicycle_desc', 'COLUMN' GO
Исходное имя колонки должно быть задано в формате таблица.колонка, но имя таблицы не следует включать в имя новой колонки.