Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie lege ich in SQL Server 2005 eine Spalte mit ganzen Zahlen fest, um sicherzustellen, dass die Werte größer als 0 sind?

Sie können eine Check-Einschränkung für die Spalte verwenden. IIRC die Syntax dafür sieht so aus:

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

Wie das Poster unten sagt (danke Constantin), sollten Sie die Check-Einschränkung außerhalb der Tabellendefinition erstellen und ihr einen aussagekräftigen Namen geben, damit klar ist, für welche Spalte sie gilt.

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

Sie können den Text von Check Constraints aus dem System Data Dictionary in sys.check_constraints abrufen :

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