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


ALTER TABLE (SQL Server Compact Edition)

Изменяет определение таблицы путем изменения, добавления или удаления столбцов и ограничений.

Синтаксис

ALTER TABLE table_name
{ [ ALTER COLUMN column_name 
   {DROP DEFAULT 
   | SET DEFAULT constant_expression 
   | IDENTITY [ ( seed , increment ) ]
   } 
| ADD 
   { < column_definition > | < table_constraint > } [ ,...n ] 
| DROP 
   { [ CONSTRAINT ] constraint_name 
   | COLUMN column }
] }
< column_definition > ::= 
   { column_name data_type } 
   [ [ DEFAULT constant_expression ] 
      | IDENTITY [ ( seed , increment ) ] 
   ] 
   [ROWGUIDCOL]
   [ < column_constraint > ] [ ...n ] ]
< column_constraint > ::= 
   [ NULL | NOT NULL ] 
   [ CONSTRAINT constraint_name ] 
   { 
      | { PRIMARY KEY | UNIQUE } 
      | REFERENCES ref_table [ (ref_column) ] 
      [ ON DELETE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ]
   }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      | FOREIGN KEY 
        ( column [ ,...n ] )
        REFERENCES ref_table [ (ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
      [ ON UPDATE { CASCADE | NO ACTION | SET DEFAULT |SET NULL } ] 
   }

Аргументы

  • table_name
    Имя таблицы, которую нужно изменить.

    Примечание.
    Имена таблиц должны соответствовать правилам для идентификаторов. table_name должно быть уникальным для данной базы данных. table_name может содержать до 128 символов.
  • ALTER COLUMN
    Указывает, что определенный столбец будет изменен или модифицирован.
  • column_name
    Имя столбца в таблице. Имена столбцов должны соответствовать правилам для идентификаторов и быть уникальными в таблице.
  • data_type
    Задает тип данных в столбце. Дополнительные сведения о типах данных см. в разделе Типы данных.
  • DEFAULT
    Указывает значение для столбца, если оно не было явно задано во время вставки. Определения DEFAULT можно применять к любому столбцу, за исключением тех, которые определены свойством IDENTITY. Определения DEFAULT удаляются, когда таблица удаляется из памяти. По умолчанию можно использовать только значение константы, например символьную строку или функцию даты.
  • IDENTITY
    Указывает, что новый столбец является столбцом идентификаторов. При добавлении новой строки в таблицу Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) присваивает столбцу добавочное значение. Свойство IDENTITY может быть назначено только столбцам int или bigint.
  • seed
    Значение, используемое в первой строке, которая загружается в таблицу.
  • increment
    Приращение, добавляемое к значению идентификатора предыдущей загруженной строки.
  • ADD
    Указывает, что добавлено одно или несколько определений столбца или ограничений таблицы.
  • DROP { [CONSTRAINT] constraint_name| COLUMN column}
    Указывает, что из таблицы будет удален constraint_name или column_name.
  • ROWGUIDCOL
    Указывает, что новый столбец является столбцом глобальных уникальных идентификаторов строк. В качестве столбца ROWGUIDCOL в таблице можно назначить только один столбец uniqueidentifier. Свойство ROWGUIDCOL может быть назначено только столбцу uniqueidentifier.

    Свойство ROWGUIDCOL автоматически создает значения для новых строк, вставленных в таблицу.

  • NULL | NOT NULL
    Ключевые слова, указывающие, разрешены ли в столбце нулевые значения. Значение NULL не является ограничением, но может быть определено подобным образом в виде NOT NULL.
  • CONSTRAINT
    Дополнительное ключевое слово, указывающее начало определения ограничений PRIMARY KEY, UNIQUE или FOREIGN KEY. Ограничения — это особые свойства, обеспечивающие целостность данных и создающие для таблицы и ее столбцов индексы особых типов.
  • constraint_name
    Имя ограничения. Ограничение constraint_name является дополнительным и должно быть уникальным для данной базы данных. Если ограничение constraint_name не указано, SQL Server Compact Edition создает имя ограничения.
  • PRIMARY KEY
    Ограничение, с помощью уникального индекса устанавливающее целостность сущностей в одном или нескольких столбцах. В таблице можно создать только одно ограничение PRIMARY KEY.
  • UNIQUE
    Ограничение, с помощью уникального индекса обеспечивающее целостность сущностей в одном или нескольких столбцах. Столбцы в ограничении UNIQUE могут иметь значение NULL, но каждому столбцу можно задать только одно значение NULL. В таблице возможно наличие нескольких ограничений UNIQUE.

    Примечание.
    SQL Server Compact Edition может использовать индексы для введения ограничений PRIMARY KEY и UNIQUE. Полагаться на эту возможность либо пытаться изменить какие-либо индексы, созданные как часть ограничения, не рекомендуется.
  • FOREIGN KEY...REFERENCES
    Ограничение, обеспечивающее ссылочную целостность данных в столбце. Ограничение FOREIGN KEY требует, чтобы каждое значение в данном столбце существовало и в указанном столбце в ссылочной таблице.
  • ref_table
    Имя таблицы, на которую ссылается ограничение FOREIGN KEY.
  • ( ref_column [ ,... n] )
    Столбец или список столбцов таблицы, на которые ссылается ограничение FOREIGN KEY.
  • ON DELETE {CASCADE | NO ACTION |SET DEFAULT | SET NULL}
    Определяет действие, которое будет применено к строке в создаваемой таблице, если у этой строки имеется ссылающееся отношение, а строка, на которую она ссылается, удалена из родительской таблицы. Значение по умолчанию — NO ACTION. Дополнительные сведения см. в "Замечаниях" далее в этом разделе.
  • ON UPDATE {CASCADE | NO ACTION | SET DEFAULT | SET NULL}
    Определяет действие, которое будет применено к строке в создаваемой таблице, если у этой строки имеется ссылающееся отношение, а строка в родительской таблице, на которую она ссылается, обновлена. Значение по умолчанию — NO ACTION. Дополнительные сведения см. в "Замечаниях" далее в этом разделе.
  • column
    Столбец или список столбцов, заключенные в скобки, которые используются в ограничениях таблицы для обозначения столбцов, использованных в определении ограничения.
  • n
    Заменитель места, указывающий, что предшествующий элемент может повторяться n раз.

Замечания

При значениях ON DELETE или ON UPDATE и указанном параметре CASCADE обновление строки в ссылающейся таблице происходит, если обновлена соответствующая строка в родительской таблице. Если указан параметр NO ACTION, SQL Server Compact Edition возвращает ошибку и выполняется откат обновления указываемой строки в родительской таблице.

Например, в базе данных может быть две таблицы — A и B. У таблицы A имеется связь ссылок с таблицей B: внешний ключ A.ItemID ссылается на первичный ключ B.ItemID.

Если инструкция UPDATE выполняется в строке в таблице B, а для ключа A.ItemID указано действие ON UPDATE CASCADE, SQL Server Compact Edition проводит поиск одной или нескольких зависимых строк в таблице A. Если таковые существуют, обновляются и зависимые строки в таблице A, и ссылочная строка в таблице B.

Если же указан параметр NO ACTION, SQL Server Compact Edition возвращает ошибку и проводит откат обновления ссылочной строки в таблице B при наличии по крайней мере одной строки в таблице A, которая на нее ссылается.

Примеры кода

А. Изменение начального значения и значения инкремента в столбце идентификатора

В следующем примере показано, как изменить начальное значение и значение инкремента в столбце идентификатора.

CREATE TABLE MyCustomers (CustID INTEGER IDENTITY (100,1) PRIMARY KEY, CompanyName NvarChar (50))
INSERT INTO MyCustomers (CompanyName) VALUES ('A. Datum Corporation')
ALTER TABLE MyCustomers ALTER COLUMN CustId IDENTITY (200, 2)
Б. Добавление в столбец значения по умолчанию

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

ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation'
В. Удаление значения по умолчанию из столбца

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

ALTER TABLE MyCustomers ALTER COLUMN CompanyName DROP DEFAULT

См. также

Справка и поддержка

Получение помощи по SQL Server Compact Edition