You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SSMS表设计器中设置检查约束?含SessionState列枚举约束需求

解决SSMS中SessionState列的枚举检查约束与非空设置问题

嘿,我来帮你搞定这两个困扰你的问题!

一、在表设计器中添加枚举型检查约束

很多人第一次用表设计器找检查约束都会懵,其实它藏在属性窗口里:

  • 打开目标表的表设计器,选中SessionState列。
  • 按下F4键打开「属性」窗口(或者右键表设计器空白处,选择「属性」)。
  • 在属性窗口里找到「Check Constraints」选项,点击右侧的省略号按钮(...)。
  • 在弹出的窗口中点击「添加」,然后在「Expression」输入框里填写你的枚举规则,比如:
    ([SessionState] IN ('Active', 'Inactive', 'Expired'))
    
  • 可以给约束起个清晰的名字(比如CK_SessionState_ValidStatus),方便后续维护。
  • 最后保存表,约束就生效了。

另外,表设计器里设置非空超简单:直接在列的「允许空」列取消勾选就行,不用绕到脚本里。

二、用脚本方式同时设置非空与检查约束

如果你习惯用脚本操作,不管是修改现有表还是新建表,都可以直接写SQL实现:

修改现有表

-- 第一步:设置SessionState列为非空(如果之前允许为空)
ALTER TABLE 你的表名
ALTER COLUMN SessionState VARCHAR(20) NOT NULL; -- 替换成你列的实际数据类型

-- 第二步:添加枚举检查约束
ALTER TABLE 你的表名
ADD CONSTRAINT CK_SessionState_ValidValues
CHECK ([SessionState] IN ('Active', 'Inactive', 'Expired'));

新建表时直接配置

CREATE TABLE 你的表名 (
    -- 其他列定义...
    SessionState VARCHAR(20) NOT NULL 
        CHECK ([SessionState] IN ('Active', 'Inactive', 'Expired')),
    -- 其他列定义...
);

这样就能同时搞定非空和枚举约束啦!

内容的提问来源于stack exchange,提问作者Lebron11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:22:55