sql server数据库建表的默认值问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:40:45
假设Users表中有这样两个字段:sex(表示性别)和height(表示身高)
其中sex列没有默认值,不能为空,只能填男或者女;
height列有默认值,不能为空。
问题是我怎么做才能使当性别是男的时候,height默认170;当时女的时候height默认160.

谢谢

我尝试着DEFAULT 约束带CASE语句 还是不行
也没找到资料
后来就用触发器去代替了

--测试表
CREATE TABLE TA
(
id int primary key identity(1,1),
sex nvarchar(2) not null,
height int null
)
--创建触发器
CREATE TRIGGER tri_ta_insert
ON TA
FOR INSERT
AS
IF EXISTS (SELECT 1 FROM inserted WHERE sex='男')
BEGIN
UPDATE TA
SET height=170
FROM inserted
WHERE TA.ID = inserted.ID
END
ELSE
BEGIN
UPDATE TA
SET height=160
FROM inserted
WHERE TA.ID = inserted.ID
END

--插入数据
INSERT INTO TA (sex) values('男')
INSERT INTO TA (sex) values('女')

不可以吧.