Вниз
Скачать: 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.022 c
4-1095354916
Димон
2004-09-16 21:15
2004.10.31
Как звук со звуковухи передать на другую


14-1097253935
Leaner
2004-10-08 20:45
2004.10.31
Количество секторов в кластере


11-1080931846
4kusNick
2004-04-02 22:50
2004.10.31
Как искать заменять текст? При помощи FindReplaceDLG help!


3-1096889723
NewDelpher
2004-10-04 15:35
2004.10.31
Временные таблицы в функциях


3-1096586389
Homa_Programer
2004-10-01 03:19
2004.10.31
ms sql




   Наверх