【问题标题】:How can I use check constraint in sql server 2005如何在 sql server 2005 中使用检查约束
【发布时间】:2009-11-23 21:03:22
【问题描述】:

我想检查一组特定的值。
例如

  • 检查列名应该在 1 到 5 之间
  • 检查列名应为 1 或 2 或 4

【问题讨论】:

  • 两种情况都需要答案。

标签: sql sql-server database sql-server-2005


【解决方案1】:

在 SQL Server 文档中有相当丰富的信息,但是创建您要求的检查约束的两个语句是:

ALTER TABLE tablename ADD CONSTRAINT constraintName CHECK (colname between 1 and 5);

ALTER TABLE tablename ADD CONSTRAINT constraintName CHECK (colname in (1,2,4));

检查约束的条件可以包括:

  1. in 引入的常量表达式列表

  2. 用 between 引入的一系列常量表达式

  3. 用like引入的一组条件,可能包含通配符

这允许你有这样的条件:

(colname >= 1 AND colname <= 5)

【讨论】:

  • 我们可以在检查约束中也使用正则表达式吗?
  • 据我所知,我写的很多东西都来自在线书籍(SQL Server 文档),他们没有提到这种能力。
  • 非常感谢。实际上,我正在为我的论坛写一个基于用户“定义的数据类型”的问题,该问题需要提供一个数据库供用户理解。在处理 Sql server 中的存储+性能时,这个问题不太合乎逻辑。我会在准备发布后立即传递一个链接。
【解决方案2】:
ALTER TABLE tablename ADD CONSTRAINT constraintName CHECK (colname in (1,2,4));

【讨论】:

  • 它会只检查这些值吗
  • 以及如何检查一组值之间,即 1 到 5 之间
  • 抱歉,您的回答不完整
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
相关资源
最近更新 更多