Вниз
Скачать: CL | DM;

Константы в MSSQL   Найти похожие ветки 

← →
Гаврила ©   (2004-10-01 10:47) [0]

В некой таблице MSSQL 2000 есть поле
в котором по логике системы все значения должны находиться в диапазоне 1..5

Вопрос - как правильно обеспчить невозможность записи неверного значения?
тип поля  - TinyInt

сейчас сделано так - добавление и модификация записей через хранимые процедуры (их несколько), где на входе проверяется корректность значения, и в случае неудачи поднимается исключение.
Но - таких процедур - несколько, и везде эти "константы" - 1 и 5  определены просто числами.
Нельзя ли объявить именно константами где-то в одном месте, и везде использовать? Везде - в смысле в разных процедурах.
Так как диапазон может и изменится ,и хотелось бы поменять константы в одном месте, а не лазить по всем процедурам

Приходит в голову создать пару функций, где и возвращать их результаатом.
А как такие вещи делаются правильно ?


← →
stone ©   (2004-10-01 10:53) [1]

User Define Data Type + Rule


← →
Ega23 ©   (2004-10-01 10:55) [2]

Нельзя ли объявить именно константами где-то в одном месте, и везде использовать? Везде - в смысле в разных процедурах.
Так как диапазон может и изменится ,и хотелось бы поменять константы в одном месте, а не лазить по всем процедурам


Я обычно завожу таблицу xConfig :
create table xConfig
(
   CfgNam         char(16)              not null
       default " ",
   WORKCOD        smallint              not null
       default 0,
   MODCOD         tinyint               not null
       default 0,
   opercod        int                   not null
       default 0,
   CfgNum1        int                   not null
       default 0,
   CfgNum2        int                   not null
       default 0,
   cfgStr1        varchar(4096)         not null
       default " ",
   cfgStr2        varchar(4000)         not null
       default " ",
   datin          datetime              not null
       default "1900",
   datout         datetime              not null
       default "1900",
   cfgtxt         text                  null    ,
   cfgImg         image                 null    
)


В ней по CfgNam всегда можно какие-то константы хранить.


← →
Гаврила ©   (2004-10-01 11:00) [3]


> [1] stone ©   (01.10.04 10:53)


Хоть и не так ,но спасибо :-)
Rule - для обратной совместимости, но, разбираясь, я узнал, что оказывается есть некие Check Constraint  :-)


← →
BoxTer   (2004-10-01 12:26) [4]

вот оно и есть - констрейнты.
например
CREATE TABLE jobs
(
  job_id  smallint
     IDENTITY(1,1)
     PRIMARY KEY CLUSTERED,
  job_desc        varchar(50)     NOT NULL
     DEFAULT "New Position - title not formalized yet",
  min_lvl tinyint NOT NULL
     CHECK (min_lvl >= 10),
  max_lvl tinyint NOT NULL
     CHECK (max_lvl <= 250)
)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
4-1096350638
Руслан
2004-09-28 09:50
2004.10.31
Вопрос про порты


14-1097606468
tox
2004-10-12 22:41
2004.10.31
Работа с плейлистами.


1-1098173227
xman
2004-10-19 12:07
2004.10.31
Не отображать Hint`ы в TreeView над объектами


3-1096626257
Chuk45
2004-10-01 14:24
2004.10.31
Locate и Query


14-1097334147
rolex2002
2004-10-09 19:02
2004.10.31
Как на 25 и 5 гнёзда LPT порта подать напряжение?




   Наверх