日期:2014-05-18  浏览次数:20671 次

问个限制列的问题
我有个表Employee
结构如下:
EmployeeID           int           indentity             PrimaryKey                   //员工ID
IDCard                   varchar(max)             NULL                                   //身份证号                

我想实现IDCard的限制就是只能插入的值只能为15位或者18位的数字


------解决方案--------------------
這個應該是在前台做的吧?
------解决方案--------------------
--最好在前台处理,DBMS处理如下:
alter table Employee add check (datalength(IDCard) in (15,18))
------解决方案--------------------
晕,限制只输入数字这个一般是在前台实现的啊,并且即便数据库实现了,当用户插入字符时,数据库会报错,但是如果前台程序不处理错误标识,用户看了还是不懂.错误标识还得传递给前台程序处理啊.
------解决方案--------------------
alter table Employee add check (datalength(IDCard) in (15,18) and isnumberic(IDCard) = 1)