sql 2000,要求限制电话号码十一位,只能是数字~数据类型char(12),约束表达式怎么写
3个回答
展开全部
SQL Server 2000 没有, 就拿个 SQL Server 2005 的来凑个数。
不大清楚 SQL Server 2000 里面,有没有 PATINDEX 函数了。
CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);
-- 失败 长度不符合,且是英文
INSERT INTO #temp VALUES ('a');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('1');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('123456789012');
-- 失败 长度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');
-- 成功
INSERT INTO #temp VALUES ('12345678901');
不大清楚 SQL Server 2000 里面,有没有 PATINDEX 函数了。
CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);
-- 失败 长度不符合,且是英文
INSERT INTO #temp VALUES ('a');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('1');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('123456789012');
-- 失败 长度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');
-- 成功
INSERT INTO #temp VALUES ('12345678901');
2019-07-03
展开全部
CONSTRAINT CK_学生电话长度07 CHECK (LEN(学生电话07) = 11),
CONSTRAINT CK_学生电话类型07 CHECK (学生电话07 IN(0,1,2,3,4,5,6,7,8,9))
可以参考下,这里建立了两个约束,一个约束长度,一个约束数字类型。
CONSTRAINT CK_学生电话类型07 CHECK (学生电话07 IN(0,1,2,3,4,5,6,7,8,9))
可以参考下,这里建立了两个约束,一个约束长度,一个约束数字类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般超过长度就提示不予保存,例如百度知道的回答不允许超过9999个字符,超过就提示不能保持
如果确实需要保存超长的字符,vachar(8000)都不够用,那么需要把字段类型修改为text类型,text不限制长度,不过对字符的操作会麻烦些
如果确实需要保存超长的字符,vachar(8000)都不够用,那么需要把字段类型修改为text类型,text不限制长度,不过对字符的操作会麻烦些
追问
说的太复杂了…… [电话] like '[0-9][0-9][09][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' 这么写对吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询