Опубликован: 02.02.2007 | Доступ: свободный | Студентов: 2374 / 243 | Оценка: 4.10 / 3.86 | Длительность: 26:44:00
Урок 22:

Язык определения данных

Создайте индекс

  1. В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)для очистки содержимого панели редактирования Editor Pane.
  2. В панели редактирования введите следующий оператор:
    CREATE INDEX SimpleIndex ON SimpleTable (SimpleDescription)

  3. Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).Query Analyzer создаст индекс.
  4. В таблице SimpleTable раскройте папку Indexes и убедитесь, что индекс SimpleIndex добавлен.

Изменение объектов

В то время как оператор CREATE создает новый объект, оператор ALTER предоставляет механизм для изменения определения объекта. Не все объекты, созданные с помощью оператора CREATE, имеют соответствующий оператор ALTER. В таблице 22.2 приведен синтаксис для объектов, которые могут быть изменены.

Таблица 22.2. Операторы ALTER
Синтаксис оператора ALTER Действие
ALTER DATABASE <имя> <спецификация_файла> Изменяет файлы, используемые для хранения базы данных
ALTER FUNCTION <имя>
RETURNS <возвращаемое_значение>
AS < операторы_tsql>
Изменяет операторы Transact-SQL, содержащие функцию
ALTER PROCEDURE <имя>
AS < операторы_tsql>
Изменяет операторы Transact-SQL, содержащие в себе хранимую процедуру (См. "Хранимые процедуры" )
ALTER TABLE <имя>
<определение_изменения>
Изменяет определение таблицы (В этом уроке мы подробно рассмотрим <определение_изменения>.)
ALTER TRIGGER <имя>
{FOR | AFTER | INSTEAD OF} <действие_dml>
Изменяет операторы Transact-SQL, содержащие в себе триггер (См. "Триггеры" )
ALTER VIEW <имя>
AS <оператор_выборки>
Изменяет операторы SELECT, которые создают представление

Оператор ALTER TABLE является составным по той же причине, почему и оператор CREATE TABLE: определение таблицы состоит из нескольких различных частей. Упрощенная версия синтаксиса для оператора ALTER TABLE приведена ниже:

ALTER TABLE <имя>
{
[ALTER COLUMN <определение_столбца>] |
[ADD <определение_столбца>] |
[DROP COLUMN <имя_столбца>] |
[ADD [WITH NOCHECK] CONSTRAINT <ограничение_для_таблицы>]
}

Ключевые слова CHECK (подразумевается) и NOCHECK перед ограничением таблицы, предписывают SQL Server тестировать или не тестировать имеющиеся в таблице данные с учетом нового ограничения. WITH NOCHECK используется лишь в крайне редких случаях.

Изменение столбцов

Ниже представлено несколько ограничений для фразы ALTER COLUMN. Столбец не может быть изменен, если он:

  • имеет тип данных text, image, ntext или timestamp;
  • определен в таблице как ROWGIDCOL;
  • является вычисляемым столбцом или используется в вычисляемом столбце;
  • является реплицированным;
  • используется в индексе – если только столбец не имеет тип данных varchar, nvarchar или varbinary; тип данных не изменяется и размер столбца не уменьшается;
  • используется в статистике, генерируемой оператором CREATE STATISTIC;
  • используется в ограничении PRIMARY KEY;
  • используется в ограничении FOREIGN KEY REFERENCES;
  • используется в ограничении CHECK;
  • используется в ограничении UNIQUE;
  • указывается как DEFAULT.
Инна Грушецкая
Инна Грушецкая
Сергей Чесноков
Сергей Чесноков