如何基于另一列在SQL中为一列设置默认值

Dyn*_*amo 13 sql

我正在使用旧的SQL 2000数据库,我没有很多SQL经验.当一个新行添加到我的一个表时,我需要根据工作类别的列分配一个默认时间值.

例如,工作类别A将分配1小时的时间值,类别B将分配2小时等等...

如果用户没有手动输入他们完成工作所花费的时间,则只应设置该值.我想过用默认约束来做这个,但我不认为如果默认值有依赖关系会有效.

最好的方法是什么?

Ste*_*ton 9

我会在Insert上使用触发器.

只需检查是否已分配值,如果没有,请抓住正确的值并使用它.


Pet*_*ron 6

使用Stephen Wrighton建议的触发器:

CREATE TRIGGER [myTable_TriggerName] ON dbo.myTable FOR INSERT        
AS
SET NOCOUNT ON
UPDATE myTable
SET
    timeValue = '2 hours' -- assuming string values
where ID in (
    select ID
    from INSERTED
    where
        timeValue = ''
        AND workCategory = 'A'
)
Run Code Online (Sandbox Code Playgroud)