Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Dans SQL Server 2005, comment définir une colonne d'entiers pour garantir que les valeurs sont supérieures à 0 ?

Vous pouvez utiliser une contrainte de vérification sur la colonne. IIRC la syntaxe pour cela ressemble à :

create table foo (
    [...]
   ,Foobar int not null check (Foobar > 0)
    [...]
)

Comme le dit l'affiche ci-dessous (merci Constantin), vous devez créer la contrainte de vérification en dehors de la définition de la table et lui donner un nom significatif afin qu'il soit évident à quelle colonne elle s'applique.

alter table foo
  add constraint Foobar_NonNegative
      check (Foobar > 0)

Vous pouvez obtenir le texte des contraintes de vérification à partir du dictionnaire de données système dans sys.check_constraints :

select name
      ,description
  from sys.check_constraints
 where name = 'Foobar_NonNegative'