Введение в программирование SQL Server. Создание и управление базой данных. Инструменты целостности данных, страница 17

ALTER TABLE CategoriesNew

ADD Commission MONET NULL

Удаление колонок не восстанавливается, поэтому убедитесь, что вы хотите удалить колонку, прежде чем делать это.

Следующий пример удаляет колонку из таблицы:

ALTER TABLE CategoriesNew

DROP CULUMN Commission

Все индексы и ограничения связанные с этой колонкой будут удалены.

4.3 Генерация значений колонок

Различные возможности позволяют вам генерировать значения колонок: тождеств (Identity), NEWID функция и тип данных uniaueidentifier.

Использование свойства Identity

Вы можете использовать свойство Identity (тождество) для создания колонки, которая содержит сгенерированное системой следующее значение, определяющее каждую строку, вставленную в таблицу. Тождественная колонка часто используется в качестве значений первичного ключа.

Когда SQL Server автоматически предоставляет значение ключа, можно уменьшить затраты на улучшение производительности. Это облегчает программирование, делает первичный ключ коротким и уменьшает пользовательские транзакции.

Рассмотрите следующие рекомендации для использования свойства Identity:

*  Только одна тождественная колонка разрешена в таблице;

*  Она должна использоваться с целочисленными типами данных.;

*  Оно не может обновляться;

*  Вы можете использовать ключевое слово IDENTITYCOL в месте с именем колонки в запросе. Это позволяет вам ссылаться на колонку в таблице со свойством Identity, не зная имени колонки;

*  Не разрешает нулевые значения.

Вы можете получить информацию о свойстве Identity несколькими путями:

*  Две системные функции возвращают информацию о тождественной колонке: IDENT_SEED (возвращает начальное значение) и IDENT_INCR (возвращает значение приращения);

*  Вы можете получить информацию о Identity колонке, используя глобальную переменную @@identity, которая определяет значение последней вставленной строки в тождественную колонку в течение сессии;

*  Функция SCOPE_IDENTITY возвращает последнее значение, вставленное в колонку в некоторых рамках. Рамки определяются процедурой, триггером, функцией или batch;

*  Функция IDENTITY_INSERT возвращает последнее значение, сгенерированное для определённой таблицы в любой сессии или рамке.

Вы можете управлять свойством Identity несколькими путями:

*  Вы можете позволить явно вставлять значения в тождественную колонку таблицы с помощью установки свойства IDENTITY_INSERT в значение ON. Когда это свойство установлена, оператор INSERT должен указывать значение колонки.

*  Для проверки возможности изменения текущего тождественного поля таблицы, вы можете использовать оператор DBCC CHECKIDENT. Он позволяет вам сравнить текущее тождественное значение с максимальным значением в тождественной колонке.

Тождественное свойство не обеспечивает уникальности. Для уникальности создавайте уникальный индекс.

Следующий пример создаёт таблицу с двумя колонками, StudentID и Name. Свойство Identity используется для автоматического увеличения в каждой строке колонки StudentID. Начальное значение устанавливается в 100, а приращение в 5. Значения для этой колонки будут генерироваться в виде 100, 105, 110, 115 …

CREATE TABLE Class

(StudentID INT IDENTITY(100,5) NOT NULL,

Namt varchar (16))

Использование функции NEWID и уникального идентификатора

Тип данных uniqueidentifier (уникальный идентификатор) и функция NEWID – это две возможности, которые используются вместе. Используйте эти возможности, когда данные сопоставляются из нескольких таблиц в одну большую таблице, когда нужно обеспечить уникальность всех записей:

*  Тип данных uniqueidentifier хранит число уникального идентификатора в виде 16-байт бинарной строки. Тип данных использует для хранения глобальный уникальный идентификатор (GUID);

*  Функция NEWID создаёт новое число уникального идентификатора, которое хранится в типе данных uniqueidentifier;

*  Тип данных uniqueidentifier не генерирует автоматически новый ID для вставляемой строки в отличие от свойства Identity.

Пример