web-dev-qa-db-ja.com

SQL制約の最小値/最大値?

最小値が1234で最大値が4523である数値フィールドにSQL制約を設定する方法はありますか?

41
Shimmy

check制約 のSQL Server構文:

create table numbers (
    number int not null
        check(number >= 1234 and number <= 4523),
    ...
)

create table numbers (
    number int not null,
    check(number >= 1234 and number <= 4523),
    ...
)

create table numbers (
    number int not null,
    constraint number_range_check
        check(number >= 1234 and number <= 4523),
    ...
)
51
yfeldblum
CREATE TABLE WhatEver
(
    ...
    NumericField INTEGER NOT NULL CHECK(NumericField BETWEEN 1234 AND 4523),
    ...
);

「BETWEEN AND」は、引用符で囲まれた制限値を含む範囲を提供することに注意してください。

13

SQL Serverを使用している場合、次のようなCHECK制約を使用します。

CREATE TABLE foo (
  someint INT NOT NULL CHECK (someint >= 1234 AND someint <= 4523)
)
3
steveschoon

SQL Server Management Studioを使用してSQL Serverを使用している場合、チェック制約を追加する最も便利な方法は、ツリービュー(オブジェクトエクスプローラー)のConstraintsフォルダーを右クリックし、ポップアップメニューから[新しい制約]を選択することです。

[CK_tableName *]という名前の新しい空の制約で[制約のチェック]ウィンドウがポップアップします。

このような提案された名前を編集し、[式]フィールドにチェック制約のコードを挿入できます。

次に、オブジェクトエクスプローラーの(フォルダーを選択して更新アイコンをクリックした後)Constraintフォルダーに新しい制約が表示されます。それを右クリックして、ポップアップメニューから[変更]を選択して編集できます。

0
Fry Simpson