MSSQL pytanie nt Create type

0

hej,

mam bazę firebirda gdzie można zrobić coś takiego :

 
CREATE DOMAIN D_BOOLEAN
AS SMALLINT
CHECK (value is null or value in (0, 1));

Pytanie brzmi : czy w mssql oprócz

 
create type D_BOOLEAN FROM SMALLINT NULL;

da się dodać Check do tego typu jak w firebirdzie ?

1

Oczywiście, że jest taka możliwość. Niestety nie da się tego zrobić w jednej linijce.

CREATE RULE D_BOOLEAN_RULE AS (@value IS NULL OR @value IN (0, 1));
GO
CREATE TYPE D_BOOLEAN FROM SMALLINT NULL;
GO
EXEC sp_bindrule 'D_BOOLEAN_RULE', 'D_BOOLEAN';
GO

W przypadku próby wstawienia wartości niezgodnej z definicją w RULE pojawi się komunikat:

A column insert or update conflicts with a rule imposed by a previous CREATE RULE statement.

0

dziękuje!!! :)

0

W mssql masz typ "bit" z wartościami 0 i 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1