根据其他列设置默认值?

时间:2018-03-30 06:46:49

标签: sql-server image database-design default-value sqldatatypes

我有表Employee的列


    IdEmp     int not null primary key,
    PhotoEmp  image default 'D:\Avatars\maleSilhouette.png',
    GenderEmp nchar(1) CHECK GenderEmp in ('M','F')

因此,每当我插入EMPLOYEE(IdEmp,GenderEmp)值(' 1001',' M')时,此脚本默认存储男性图像(无论性别),但我想存储女性剪影(D:\ Avatars \ femaleSilhouette.png)以防性别为' F'

2 个答案:

答案 0 :(得分:0)

您可以将PhotoEmp列设为计算列,并按以下方式设置值:

ALTER TABLE dbo.Employee ADD PhotoEmp AS CAST
(
  CASE
  WHEN GenderEmp = 'M' THEN 'D:\Avatars\maleSilhouette.png' 
  ELSE 'D:\Avatars\femaleSilhouette.png'
  END AS image
)
GO 

答案 1 :(得分:0)

您可以使用虚拟列来实现此目的。但之后您将无法在该列中插入任何其他值。你会得到ORA-54013。