Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

No SQL Server 2005, como defino uma coluna de inteiros para garantir que os valores sejam maiores que 0?


Você pode usar uma restrição de verificação na coluna. IIRC a sintaxe para isso se parece com:
create table foo (
    [...]
   ,Foobar int not null check (Foobar > 0)
    [...]
)

Como o pôster abaixo diz (obrigado Constantin), você deve criar a restrição de verificação fora da definição da tabela e dar a ela um nome significativo para que seja óbvio a qual coluna ela se aplica.
alter table foo
  add constraint Foobar_NonNegative
      check (Foobar > 0)

Você pode obter o texto das restrições de verificação do dicionário de dados do sistema em sys.check_constraints :
select name
      ,description
  from sys.check_constraints
 where name = 'Foobar_NonNegative'