gpt4 book ai didi

sql - 使用具有空值的默认约束?

转载 作者:行者123 更新时间:2023-12-02 09:22:57 24 4
gpt4 key购买 nike

如果即将到来的值是 NULL,有没有办法插入默认值? ,这是我的约束:

ALter table Student
add Constraint DF_Name Default 'NOTAVAILABLE' For [Name]

当我运行这个:
Insert into Student (Name,ClassId)values (NULL,1)

它仍然插入 NULL而不是默认值。

最佳答案

如果我理解你,你想要这个:

INSERT INTO Student ( Foo, Bar, Name ) VALUES ( 'Baz', 'Qux', NULL )

真正做到这一点:
INSERT INTO Student ( Foo, Bar, Name ) VALUES ( 'Baz', 'Qux', 'NOTAVAILABLE' )

(请注意,我认为这是一个坏主意,因为 NULL 旨在表示“NOTAVAILABLE”值 - 您应该避免使用带内值来表示错误条件 - 尤其要避免使用字符串/文本值来表示状态值)

(这也是一个坏主意,因为检查 "NOTAVAILABILE" 比检查 NULL 值要昂贵得多 - 您的表和索引将使用更多空间并且需要更长的时间来查找和扫描)

但如果你真的想这样做......
CREATE TRIGGER OnInsertOverrideNameIfNull ON Student INSTEAD OF INSERT AS

INSERT INTO Student ( Foo, Bar, Name )
SELECT Foo, Bar, ISNULL( [Name], 'NOTAVAILABLE' ) FROM [inserted]

END

关于sql - 使用具有空值的默认约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com