Поделиться через


CREATE TABLE (база данных SQL Azure)

Создает новую таблицу в База данных SQL Azure.

Важное примечаниеВажно!

Текущая реализация федераций будет выведена из эксплуатации на уровнях служб Web и Business. Для обеспечения максимальной масштабируемости, гибкости и производительности рассмотрите возможность реализации нестандартных решений для сегментирования.Дополнительные сведения о нестандартном сегментировании см. в разделе Масштабирование баз данных SQL Azure.

Применимо для следующих объектов: База данных SQL Azure. Сведения о синтаксисе SQL Server см. в разделе CREATE TABLE (SQL Server).

Синтаксис

CREATE TABLE 
    [ database_name . [ schema_name ] . | schema_name . ] table_name 
    ( { <column_definition> | <computed_column_definition> 
        | <column_set_definition> } 
        [ <table_constraint> ] [ ,...n ] ) 
FEDERATED ON ( distribution_name = column_name)
[ ; ]

<column_definition> ::= 
column_name <data_type>
    [ COLLATE collation_name ] 

    [ NULL | NOT NULL ]
    [ 
        [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] 
      | [ IDENTITY [ ( seed ,increment ) ] 
    ]
  [ <column_constraint> [ ...n ] ]

  [ SPARSE ]
  
<data type> ::= 
[ type_schema_name . ] type_name 
    [ ( precision [ , scale ] | max 
] 

<column_constraint> ::= 
[ CONSTRAINT constraint_name ] 
{     { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        [ 
          WITH ( < index_option > [ , ...n ] ) 
        ] 
| [ FOREIGN KEY ] 
        REFERENCES [ schema_name . ] referenced_ table_name [ ( ref_column ) ] 
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
  | CHECK  ( logical_expression ) 
} 

<computed_column_definition> ::= 
column_name AS computed_column_expression 
[ PERSISTED [ NOT NULL ] ]
[ 
    [ CONSTRAINT constraint_name ]
    { PRIMARY KEY | UNIQUE }
        [ CLUSTERED | NONCLUSTERED ]
        [ 
          WITH ( <index_option> [ , ...n ] )
        ]
    | [ FOREIGN KEY ] 
        REFERENCES referenced_table_name [ ( ref_column ) ] 
        [ ON DELETE { NO ACTION | CASCADE } ] 
        [ ON UPDATE { NO ACTION } ] 
   [ NOT FOR REPLICATION ] 
    | CHECK ( logical_expression ) 
] 

<column_set_definition> ::= 
column_set_name XML COLUMN_SET FOR ALL_SPARSE_COLUMNS

< table_constraint > ::=
[ CONSTRAINT constraint_name ] 
{ 
    { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
        (column [ ASC | DESC ] [ ,...n ] ) 
        [ 
           WITH ( <index_option> [ , ...n ] ) 
        ]
  
    | FOREIGN KEY 
        ( column [ ,...n ] ) 
        REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ] 
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 

    | CHECK ( logical_expression ) 
} 

<index_option> ::=
{ 
  IGNORE_DUP_KEY = { ON | OFF } 
  | STATISTICS_NORECOMPUTE = { ON | OFF } 
}

Аргументы

Примечание

Следующая диаграмма синтаксиса демонстрирует поддерживаемые аргументы и параметры в База данных SQL Azure.

В База данных SQL Azure поддерживается трехкомпонентный формат имен database_name**.[schema_name].**object_name, если database_name — текущая база данных или database_name представляет собой tempdb, а object_name начинается с #.

База данных SQL Azure не поддерживает четырехкомпонентные имена.

Хотя столбцы SPARSE могут быть запрошены всеми клиентскими драйверами, которые поддерживаются в База данных SQL Azure, на данный момент только драйвер Native Client ODBC SQL Server 2008 или более поздние версии обеспечивают полную поддержку сжатия значений NULL в результирующем наборе.

Предложение FEDERATED ON создает федеративную таблицу в рамках существующей федерации и применяет ограничения распределения (distribution_name) для федерации к указанному столбцу федерации в таблице (column_name). Федеративные таблицы обладают следующими характеристиками.

  • Столбец федерации таблицы федерации может содержать только данные, соответствующие параметрам range_low (включительно) и range_high члена федерации.

  • Тип данных столбца федерации должен точно соответствовать типу данных, который указан в определении федерации.

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

  • Значения столбца федерации нельзя изменить на значения вне диапазона элемента федерации.

  • Столбец федерации не может быть материализованным или нематериализованным вычисляемым столбцом.

  • Индексированные представления не могут быть созданы в таблицах федерации.

  • Столбцы федерации не допускают значения NULL.

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

  • Таблицы, созданные с помощью инструкции FEDERATED ON, можно удалить стандартными методами. Можно также использовать ALTER TABLE, чтобы изменить свойства таблицы федерации, кроме атрибутов федерации, таких как ключ федерации. Чтобы изменить ссылочную таблицу на таблицу федерации или изменить таблицу федерации на ссылочную таблицу, необходимо создать новые таблицы с нужными свойствами и удалить существующую таблицу.

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

  • Таблицы федерации не поддерживают свойство идентификаторов.

  • Таблицы федерации не поддерживают типы данных timestamp и rowversion.

Дополнительные сведения об аргументах и инструкции CREATE TABLE см. в разделе CREATE TABLE (SQL Server).

Замечания

Поскольку База данных SQL Azure не поддерживает таблицы кучи, таблица должна иметь кластеризованный индекс. Если таблица создана без кластеризованного ограничения, необходимо создать кластеризованный индекс, прежде чем разрешать операции вставки на таблице.