Основы создания и изменение таблиц

После построения базы данных можно создать таблицы, в которых будут храниться данные. Данные хранятся главным образом в постоянных таблицах, но можно создавать и временные. Таблицы хранятся в базе данных, пока их не удалят, и доступны любому пользователю, имеющему соответствующие разрешения.

Свойства таблицы

Каждая таблица может содержать до 1024 столбцов. Имена таблиц и столбцов должны соответствовать правилам для идентификаторов; они должны быть уникальными в пределах таблицы, другими словами, можно использовать одинаковые имена столбцов в разных таблицах одной базы данных. Дополнительные сведения см. в разделах Идентификаторы и Использование идентификаторов в качестве имен объектов. Для каждого столбца необходимо определить тип данных. Дополнительные сведения см. в разделе Присвоение типа данных столбцу.

Имена столбцов должны быть уникальными для каждой схемы в базе данных, поэтому можно создать несколько таблиц с одинаковыми именами, указав для каждой свою схему. Например, можно создать две таблицы employees и назначить первой схему Jonah, а второй схему Sally. Чтобы обратиться к нужной таблице employees, необходимо указать ее схему.

Создание таблицы

Инструкция CREATE TABLE (Transact-SQL)

Как создавать таблицы (визуальные инструменты для баз данных)

Временные таблицы

Временные таблицы отличаются от постоянных только тем, что хранятся в базе данных tempdb и автоматически удаляются, когда необходимость в них отпадает.

Существует два вида временных таблиц: локальные и глобальные. Они отличаются друг от друга именами, видимостью и доступностью. Имена локальных временных таблиц начинаются с одного символа (#); они видны только текущему соединению пользователя и удаляются, когда пользователь отключается от экземпляра SQL Server. Имена глобальных таблиц начинаются с двух символов номера (##); они видны любому пользователю и удаляются, когда все пользователи, которые на них ссылаются, отключаются от экземпляра SQL Server.

Например, если создать таблицу employees, она будет доступна любому пользователю, которому предоставлены разрешения на ее использование до тех пор, пока не будет удалена. Если во время сеанса базы данных создается локальная временная таблица #employees, с ней сможет работать только данный сеанс. Таблица будет удалена при завершении сеанса. Если создать глобальную временную таблицу ##employees, с ней сможет работать любой пользователь базы данных. Если другие пользователи не будут работать с этой таблицей, она будет удалена после отключения от нее. Если другой пользователь обратится к созданной таблице, SQL Server удалит ее, когда произойдет отключение и другие сеансы перестанут активно к ней обращаться.

Если временная таблица создана с именованным ограничением и в области определяемой пользователем транзакции, то только один пользователь может одновременно выполнить инструкцию, создающую временную таблицу. Например, если хранимая процедура создает временную таблицу с ограничением именованного первичного ключа, то хранимая процедура не может быть одновременно выполнена несколькими пользователями.

В большинстве случаев временные таблицы можно заменить переменными типа table. Дополнительные сведения об использовании переменных типа table см. table (Transact-SQL).

Изменение таблиц

Большинство параметров, которые были указаны при первоначальном создании таблицы, можно изменить. Можно выполнить следующие действия.

  • Можно добавить, изменить или удалить столбцы. У столбца можно изменить имя, длину, тип данных, точность, масштаб и возможность принимать значения NULL, хотя существуют некоторые ограничения. Дополнительные сведения см. в разделе Изменение свойств столбцов.

  • В секционированной таблице можно перераспределить, добавить или удалить отдельные секции. Дополнительные сведения см. в разделах Изменение секционированных таблиц и индексов и Эффективная передача данных с использованием переключения секций.

  • Ограничения PRIMARY KEY и FOREIGN KEY можно добавить или удалить.

  • Ограничения UNIQUE и CHECK, определение DEFAULT и объекты можно добавить или удалить.

  • Столбец идентификаторов можно добавить или удалить, используя свойство IDENTITY или ROWGUIDCOL. Свойство ROWGUIDCOL можно добавить или удалить из существующего столбца, хотя таблица может содержать только один столбец со свойством ROWGUIDCOL.

  • Таблицы и выбранные столбцы таблицы можно зарегистрировать для полнотекстовой индексации.

Дополнительные сведения об изменении таблиц см. ALTER TABLE (Transact-SQL).

Имя или схему таблицы также можно изменить. В этом случае необходимо изменить имя таблицы во всех триггерах, хранимых процедурах, сценариях Transact-SQL и другом программном коде, где используется старое имя или схема таблицы.

Переименование столбца

sp_rename (Transact-SQL)

Свойства таблицы (визуальные инструменты для баз данных)

Изменение схемы таблицы

ALTER SCHEMA (Transact-SQL)