sql - 如何对 SQL 表列进行验证?

标签 sql sql-server database

问题假设:

我在SQL Server中有一个表,结构如下;

Column 1: Id | INT | NOT NULL | Auto-Identity
Column 2: Name | VARCHAR(20) | NOT NULL
Column 3: Number | SMALLINT | NOT NULL

解决方案:

我想要的是,无论何时在列中输入某个值,都应该在数据库级别本身根据某些检查对其进行验证或确认?

例子:

第 3 列 Number"应该只允许:

  • 数值
  • 长度为 10
  • 值应以数字 4 开头

谁能建议在数据库级别实现这个的最佳方法?

最佳答案

使用 CHECK 约束 - http://msdn.microsoft.com/en-us/library/ms188258.aspx

ALTER TABLE table
ADD CONSTRAINT tenDigitsStartsWithFour CHECK
(Col3 BETWEEN 4000000000 AND 4999999999) -- Col3 must be a BIGINT, thanks Mikael

关于sql - 如何对 SQL 表列进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223557/

相关文章:

mysql - 存储过程 : if else statement inside case when

sql - 在 PostgreSQL 上插入或更新之前检查给定值的触发器

sql - 相当于 SQL Server SCHEMA 的 Oracle

sql-server - 使用兼容性级别较低的 SQL Server 是否有负面影响

mysql - select for update 是锁定整个表还是只锁定返回的行?

mysql - 无法将 365 kb sql 文件导入 WampServer 上的 phpmyadmin

sql - 多个开始事务

php - 在 MySql 中连接表来存储已查看的文章 ID

database - Qt ODBC - 无法出错

database - 有哪些数据库重构工具?