Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

In SQL Server 2005, come posso impostare una colonna di numeri interi per garantire che i valori siano maggiori di 0?

È possibile utilizzare un vincolo di controllo sulla colonna. IIRC la sintassi per questo è simile a:

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

Come dice il poster qui sotto (grazie Constantin), dovresti creare il vincolo check al di fuori della definizione della tabella e assegnargli un nome significativo in modo che sia ovvio a quale colonna si applica.

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

Puoi estrarre il testo dei vincoli di controllo dal dizionario dei dati di sistema in sys.check_constraints :

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