sql - 检查两列的约束

标签 sql sql-server check-constraints

我想向服务器 2005 的表添加检查约束,但无法解决。

MemberId ClubId MeetingId
1        100    10
2        100    10
3        100    10
7        101    10  <-This would throw a check constraint
1        100    11 
2        100    11  

我不想为一个 MeetingId 拥有多个 ClubId 基本上,ClubId 只能属于一个 MeetingId,但可以分配多个成员。

如何实现这一目标?

最佳答案

在检查约束中使用函数是一种选择,但您可以创建 INDEXED VIEW实现相同的限制。

CREATE VIEW VIEW_UNIQUE_MEETINGID WITH SCHEMABINDING AS 
  SELECT  ClubID
          , MeetingID
          , COUNT_BIG(*)
  FROM    YourTable
  GROUP BY
          ClubID
          , MeetingID
GO

CREATE UNIQUE CLUSTERED INDEX UIX_VIEW_UNIQUE_MEETINGID ON VIEW_UNIQUE_CLUBID (MeetingID)

关于sql - 检查两列的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593111/

相关文章:

sql - Oracle 查询使用 Xpath 获取同一节点的逗号分隔列表

c# - 数据库; "Cannot add a PRIMARY KEY column"-异常

asp.net - 在asp.net中通过文件上传将Excel工作表导入SQL Server

sql - 如何按以下别名列分组

oracle - oracle中long数据类型与varchar数据的比较

sql - 检查 Postgresql 中条件的约束

sql-server-2008 - SQL Server 2008 中的检查约束

sql - 如何在 Sequelize 中为带有响应数组的表对象设置模型

sql - 将表的行扩展/拆分为更多行

c# - 无法将类型为 'System.TimeSpan' 的对象转换为类型 'System.IConvertible'