列にチェック制約を使用できます。 IIRC の構文は次のようになります:
create table foo (
[...]
,Foobar int not null check (Foobar > 0)
[...]
)
以下のポスターが言うように (Constantin に感謝)、チェック制約をテーブル定義の外に作成し、意味のある名前を付けて、適用される列が明確になるようにする必要があります。
alter table foo
add constraint Foobar_NonNegative
check (Foobar > 0)
sys.check_constraints
のシステム データ ディクショナリからチェック制約のテキストを取得できます。 :
select name
,description
from sys.check_constraints
where name = 'Foobar_NonNegative'