导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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]又太麻烦,有没办法?
...全文
347 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
to 楼上, 我只是照楼主的规则, 并不考虑实际有多少种情况

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

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

楼主:
比较麻烦
为什么不在应用层控制呢,不必把这个在数据库里实现啊
回复
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-]%'))

回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告