Язык определения данных
Создайте индекс
- В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)
для очистки содержимого панели редактирования Editor Pane.
- В панели редактирования введите следующий оператор:
CREATE INDEX SimpleIndex ON SimpleTable (SimpleDescription)
- Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
Query Analyzer создаст индекс.
- В таблице SimpleTable раскройте папку Indexes и убедитесь, что индекс SimpleIndex добавлен.
Изменение объектов
В то время как оператор CREATE создает новый объект, оператор ALTER предоставляет механизм для изменения определения объекта. Не все объекты, созданные с помощью оператора CREATE, имеют соответствующий оператор ALTER. В таблице 22.2 приведен синтаксис для объектов, которые могут быть изменены.
Синтаксис оператора 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.