--単純なテーブルを作成した後、ALTERを使って以下を行う
-- ・プライマリキーの追加
-- ・規定値(デフォルト値)制約の追加
-- ・カラムの追加
-- ・カラムの変更
-- ・一意制約(UNIQUE)の設定
-- ・チェック制約の設定
--テーブルの追加
CREATE TABLE t_test (
id INT IDENTITY(1,1) not NULL,
data VARCHAR(50)
)
--制約の追加
--プライマリキーの設定
ALTER TABLE t_test
ADD CONSTRAINT pk_t_test_id PRIMARY KEY (id)
--規定値(デフォルト値)制約の追加
ALTER TABLE t_test
ADD CONSTRAINT df_default_data2
DEFAULT 'test test' FOR data2 --フィールドdata2の規定値は'test test'
--カラムの追加
ALTER TABLE t_test ADD data2 VARCHAR(77)
--カラムの型変更
ALTER TABLE t_test ALTER COLUMN data VARCHAR(32)
--NULL制約の設定
-- ・ NULLを許可する場合→NULL
-- ・ NULLを許可しない場合→NOT NULL
ALTER TABLE t_test ALTER COLUMN data NOT NULL
--一意制約(UNIQUE)の設定
--テーブルにsub_idフィールドを追加し、一意制約を設定する
--フィールドの追加
ALTER TABLE t_test
ADD sub_id INT
--一意制約の設定
--既にフィールドに一意でないデータが入っている場合は実行に失敗する
ALTER TABLE t_test
ADD CONSTRAINT ix_t_test_sub_id UNIQUE (sub_id)
--チェック制約の設定
--値の範囲をチェックする制約を設定
--SMALLINTのフィールドを追加し、制約を設定する
ALTER TABLE t_test
ADD type_number SMALLINT
--数値の範囲が0~10であることを確認する制約を設定する。
--この制約を設定した状態でも、当該フィールドの値がNULLの
--データを追加できる
--NULLデータの禁止はNULL制約を別途設定する
--また、この制約はデータの追加時にのみチェックされるため
--範囲外のデータが既にテーブル上に存在する場合でも設定できる
ALTER TABLE t_test
ADD CONSTRAINT ck_t_test_type_number
CHECK(type_number between 0 and 10)
--チェック制約は次のSQLでON/OFFすることができる。
--チェック制約―ON (CHECK CONSTRAINT)
ALTER TABLE t_test
CHECK CONSTRAINT ck_t_test_type_number
--チェック制約―OFF(NOCHECK CONSTRAINT)
ALTER TABLE t_test
NOCHECK CONSTRAINT ck_t_test_type_number
2009年9月3日木曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿