回答

收藏

将可为空的列改为默认值NOT NULL

技术问答 技术问答 404 人阅读 | 0 人回复 | 2023-09-14

今天,我遇到了一块名为
6 X8 u: y  X3 B1 M+ i+ bCreated”的日期时间列,该列允许为空。现在,我想更改它,使其不为NULL,它还包含一个添加默认值的约束(getdate())。
% Q7 v# U4 B2 O( O$ m8 z到目前为止,我已经有了以下脚本,只要我提前清除了所有的空值,脚本就可以正常工作:4 ^; x  n# b1 J3 P
ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL没有办法ALTER语句也指定默认值?
, m9 A; ?9 q5 e( @* Y6 l                                                               
8 u" ]8 O5 y% y4 y3 Z    解决方案:                                                               
# P& ~) T* [# R' k, Q6 h" X! v                                                                我想你需要用三个单独的句子来执行这个操作。我一直在环顾四周,我看到的一切似乎都建议你 添加    列可以,但如果要更改列,则不能。
6 C* A" q+ G4 K/ F0 \ALTER TABLE dbo.MyTableADD CONSTRAINT my_Con DEFAULT GETDATE() for createdUPDATE MyTable SET Created = GetDate() where Created IS NULLALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则