我正在使用SQL Server 2017和SMMS创建一个实践数据库,它是一个记录存储,我正在创建表艺术家,我希望有一个限制,不允许适度的鼠标或良好的夏洛特在艺术家领域。我们不卖那些。不管怎样,

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 'Modest Mouse' OR 'Good Charlotte')
);

不用说这没用。
有什么想法吗?

最佳答案

您的描述暗示了一个简单的CHECK约束:

CONSTRAINT chk_artist_artistname
    CHECK (ArtistName NOT IN ('Modest Mouse' , 'Good Charlotte'));

然而,我发现这是一个奇怪的限制。有无数其他的名字,其中许多可能是你不卖的艺术家(甚至根本不是艺术家)。不清楚你为什么停在这两个地方。也许你只想包括你卖的艺术家。

关于mysql - 希望SQL Server CONSTRAINT不允许某个特定的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50166039/

10-09 22:18