Question

In PostgreSQL one can create a User Defined Type with an implicit CHECK by doing the following:

CREATE DOMAIN OrdinalT AS INTEGER CHECK (value >= 0);

In Sybase ASE 15.7 I've figured that the following is almost equivalent (except for the CHECK):

sp_addtype OrdinalT, "INTEGER";

How do I make a CHECK part of the user-defined type definition in Sybase?

Was it helpful?

Solution

You cannot make a check condition a part of the type definition syntactically, but you can create a rule:

CREATE RULE OrdinalTRule AS @value >= 0

and bind it to the data type:

sp_bindrule OrdinalTRule, OrdinalT

In order to modify the rule later, you will have to drop and recreate it. Before being dropped, the rule must be unbound:

sp_unbindrule OrdinalT

Note that the argument in the last statement is not the rule itself but the type to which the rule is bound.

Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top