Создание таблицы выполняется при помощи команды CREATE TABLE. Данная команда имеет довольно сложный синтаксис:
CREATE TABLE
[database_name.[ owner ] . | owner. ] table_name
( { <column_definition>
| column_name AS computed_co1umn_expression
I < table_constraint > } [ __n ]
)
[ ON { filegroup | DEFAULT } ]
Рассмотрим последовательно все ее параметры.
- database_name – название базы данных, в которой создается таблица. Если значение этого параметра опускается, то таблица создается в текущей базе данных. Прежде чем пользователь сможет создать таблицу, ему должны быть предоставлены соответствующие права в базе данных.
- owner – с помощью этого параметра указывается имя пользователя, который будет являться владельцем создаваемой таблицы. Этот пользователь уже должен существовать в базе данных, в которой создается таблица.
- table_name – имя создаваемой таблицы. При выборе имени для таблицы необходимо следовать стандартным правилам формирования идентификаторов объектов. Комбинация имени таблицы и ее владельца (owner.tablename) должна быть уникальной в пределах базы данных. Если таблица создается не в текущей базе данных, необходимо включить в описание имени таблицы ссылку на требуемую базу данных. Длина имени таблицы не должно превышать 128 символов. Если в начале имени указываются символы # или ##, то будут созданы соответственно локальная и глобальная временные таблицы. Длина имен временных таблиц, включая символы # и ##, не должна превышать 116 символов.
- column_name – название столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы. Параметр column_name может быть опущен для столбцов, имеющих тип данных timestamp. По умолчанию столбцу с таким типом данных присваивается имя timestamp.
- computed_column_expression – выражение, задающее значение для вычисляемого столбца. Вычисляемые столбцы являются виртуальными столбцами, то есть физически такие столбцы в таблице не хранятся. Они вычисляются с использованием значений столбцов той же самой таблицы
- ON {filegroup | DEFAULT} – обозначает группу файлов, в которой предполагается хранить таблицу. Данная файловая группа уже должна существовать для базы данных. Если указан идентификатор DEFAULT или описанный параметр не определяется вообще, таблица будет сохранена в файловой группе по умолчанию. Помимо собственно таблицы параметр ON {filegroup | DEFAULT} может быть указан и для ограничений целостности PRIMARY KEY и UNIQUE. Для работы этих ограничений SQL Server автоматически создает индекс, который и будет расположен в указанной группе файлов. Если явно не указано, в какой группе файлов следует хранить данные индекса, то они будут сохранены в той же группе файлов, что и сама таблица.
Рассмотрим пример создания таблицы "Students", содержащей такие столбцы, как: "ID" – первичный ключ, идентификатор записи; "Name" – имя студента; "Surname" – отчество студента; "Birth" – дата рождения студента; "_ID_Group" – идентификатор группы студента: