Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sql.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
166.4 Кб
Скачать

Синтаксис

ALTER DOMAIN name {

[SET DEFAULT {literal | NULL | USER}]

| [DROP DEFAULT]

| [ADD [CONSTRAINT] CHECK (<dom_search_condition>)]

| [DROP CONSTRAINT]

};

<dom_search_condition> = {

VALUE <operator> <val>

| VALUE [NOT] BETWEEN <val> AND <val>

| VALUE [NOT] LIKE <val> [ESCAPE <val>]

| VALUE [NOT] IN (<val> [, <val> ...])

| VALUE IS [NOT] NULL

| VALUE [NOT] CONTAINING <val>

| VALUE [NOT] STARTING [WITH] <val>

| (<dom_search_condition>)

| NOT <dom_search_condition>

| <dom_search_condition> OR <dom_search_condition>

| <dom_search_condition> AND <dom_search_condition>

}

<operator> = {= | < | > | <= | >= | !< | !> | <> | !=}

Примеры

Следующая инструкция создает домен с допустимыми значениями > 1000, за тем устанавливает его значение по умолчанию к 9999.

CREATE DOMAIN CUSTNO

AS INTEGER

CHECK (VALUE > 1000);

ALTER DOMAIN CUSTNO SET DEFAULT 9999;

ALTER TABLE

Синтаксис

ALTER TABLE table <operation> [, <operation> ...];

<operation> = {ADD <col_def> | ADD <table_constraint> | DROP col

| DROP CONSTRAINT constraint}

<col_def> = col {<datatype> | [COMPUTED [BY] (<expr>) | domain}

[DEFAULT {literal | NULL | USER}]

[NOT NULL] [<col_constraint>]

[COLLATE collation]

<col_constraint> = [CONSTRAINT constraint] <constraint_def>

[<col_constraint>]

<constraint_def> = {PRIMARY KEY | UNIQUE

| CHECK (<search_condition>)

| REFERENCES other_table [(other_col [, other_col ...])]}

<datatype> = {

{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION} [<array_dim>]

| {DECIMAL | NUMERIC} [(precision [, scale])] [<array_dim>]

| DATE [<array_dim>]

| {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR}

[(1...32767)] [<array_dim>] [CHARACTER SET charname]

| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR}

[VARYING] [(1...32767)] [<array_dim>]

| BLOB [SUB_TYPE {int | subtype_name}] [SEGMENT SIZE int]

[CHARACTER SET charname]

| BLOB [(seglen [, subtype])]

}

<array_dim> = [x:y [, x:y ...]]

<table_constraint> = CONSTRAINT constraint <tconstraint_opt>

[<table_constraint>]

<tconstraint_opt> = {

{PRIMARY KEY | UNIQUE} (col [, col ...])

| FOREIGN KEY (col [, col ...]) REFERENCES other_table

| CHECK (<search_condition>)

}

Примеры

Следующий пример добавляет столбец в таблицу и удаляет столбец:

ALTER TABLE COUNTRY

ADD CAPITAL VARCHAR(25),

DROP CURRENCY;

Обратите внимание: Эта инструкция приводит к потере любых данных в удаленном столбце.

Следующая инструкция добавляет два столбца в таблицу и определяет UNIQUE ограничение на одном из них:

ALTER TABLE COUNTRY

ADD CAPITAL VARCHAR(25) UNIQUE,

ADD LARGEST_CITY VARCHAR(25) NOT NULL;

ALTER TRIGGER

Синтаксис

ALTER TRIGGER name

[ACTIVE | INACTIVE]

[{BEFORE | AFTER} {DELETE | INSERT | UPDATE}]

[POSITION number]

[AS <trigger_body>] [terminator]

Примеры

Cледующая инструкция изменяет триггер SET_CUST_NO, делая его не активным. (а пассивным :))

ALTER TRIGGER SET_CUST_NO INACTIVE;

Следующая инструкция изменяет триггер SET_CUST_NO, чтобы вставлять строку в таблицу NEW_CUSTOMER для каждого нового заказчика:

SET TERM !! ;

ALTER TRIGGER SET_CUST_NO FOR CUSTOMER

BEFORE INSERT AS

BEGIN

NEW.CUST_NO = GEN_ID(CUST_NO_GEN, 1);

INSERT INTO NEW_CUSTOMERS(NEW.CUST_NO, TODAY)

END !!

SET TERM ; !!

ALTER PROCEDURE

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]