我正在使用旧的SQL 2000数据库,我没有很多SQL经验.当一个新行添加到我的一个表时,我需要根据工作类别的列分配一个默认时间值.
例如,工作类别A将分配1小时的时间值,类别B将分配2小时等等...
如果用户没有手动输入他们完成工作所花费的时间,则只应设置该值.我想过用默认约束来做这个,但我不认为如果默认值有依赖关系会有效.
最好的方法是什么?
我会在Insert上使用触发器.
只需检查是否已分配值,如果没有,请抓住正确的值并使用它.
使用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' )