SQL SERVER 2000中如何实现正则表达式约束

topglorylines 2008-01-06 03:41:51
比如我要建一个字段存放电话号码,那约束应该怎么写,用正则表达式似乎SQL SERVER 2000不支持,但是要写成:
[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]又太麻烦,有没办法?
...全文
434 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2008-01-07
  • 打赏
  • 举报
回复
to 楼上, 我只是照楼主的规则, 并不考虑实际有多少种情况

如果要考虑,那电话号码不同的地方还有不同的长度, 这样下去就没完了
JL99000 2008-01-07
  • 打赏
  • 举报
回复
1 楼的限制没有达到楼主的要求, 至少还应该包括 LEN(col) = 13 AND SUBSTRING(col, 5, 1) = '-'

sql 不支持正则表达式, 所以实现楼主的那种约束确实比较麻烦
---
SUBSTRING(col, 5, 1) = '-'
这个也不行啊
有的区号是三位的010

楼主:
比较麻烦
为什么不在应用层控制呢,不必把这个在数据库里实现啊
zjcxc 元老 2008-01-07
  • 打赏
  • 举报
回复
1 楼的限制没有达到楼主的要求, 至少还应该包括 LEN(col) = 13 AND SUBSTRING(col, 5, 1) = '-'

sql 不支持正则表达式, 所以实现楼主的那种约束确实比较麻烦
topglorylines 2008-01-07
  • 打赏
  • 举报
回复
谢谢大家的回复,看来在数据库里加这些约束是比较麻烦那了,只能在外层代码中想办法了。
正牌风哥 2008-01-06
  • 打赏
  • 举报
回复
除0-9/-外其它字符不接受
正牌风哥 2008-01-06
  • 打赏
  • 举报
回复
create table T(Col nvarchar(10) check(Col not like '%[^0-9-]%'))

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧