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

SQL Server 2017中创建约束禁止特定艺术家名称入库

解决SQL Server中CHECK约束禁止特定艺人名称的语法问题

我明白你在搭建唱片店练习数据库(用SQL Server 2017和SSMS)时,想要给ARTISTS表加个约束,禁止出现"Modest Mouse"和"Good Charlotte"这两个艺人的名称,但原来的CHECK约束写得有语法问题。没问题,这就给你正确的写法,顺便解释下关键点:

正确的CREATE TABLE语句

CREATE TABLE ARTIST (
 ArtistID Int NOT NULL IDENTITY(1,1),
 ArtistName Char(30) NOT NULL,
 Genre Char(15) NOT NULL,
 CONSTRAINT ArtistPK PRIMARY KEY(ArtistID),
 CONSTRAINT CheckCertainArtists CHECK ([ArtistName] NOT IN ('Modest Mouse', 'Good Charlotte'))
);

关键说明

  • 这里用NOT IN操作符精准排除了指定的两个艺人名称,完美实现你"本店不出售这些艺人唱片"的需求。
  • 给字段名ArtistName加上方括号[]是个稳妥的习惯,能避免字段名和SQL关键字冲突(哪怕这个字段名不是关键字,也建议这么做)。
  • 约束名CheckCertainArtists起得很直观,一眼就能知道这个约束的作用,方便后续维护。

如果之后需要添加更多要排除的艺人,只需要在NOT IN的括号里继续追加名称就行,比如NOT IN ('Modest Mouse', 'Good Charlotte', 'Another Artist')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:54:50