一个check语句问题

果冻虾仁 2014-10-25 02:25:11

表的名字为customer。请问以下该如何实现呢?嗨哟check支不支持正则表达式呢?比如:[0-9]{6}
尤其是第三个第四个该如何实现啊。。求救,百度了很久。
...全文
351 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2014-10-25
  • 打赏
  • 举报
回复
建议在前端程序中实现,输入或用户提交时做必要的数据检查,都正确的话才提交给数据库. 不符约束的数据是不允许写进数据库的, 如果全部约束检查工作都在数据库端实现,会有以下问题: 1.约束检查用单纯的字段约束或触发器TSQL实现比较麻烦. 2.增加数据库服务器的CPU负担(而前端程序基本不检查数据). 3.前端与数据库服务器的网络上多了一些来来回回的没必要的传输.
还在加载中灬 2014-10-25
  • 打赏
  • 举报
回复
我觉得这东西应该做到你的程序上~~ 真要做到约束上,你参考一下吧
--创建表的时候加
CREATE TABLE [customer](
	[password]varchar(50)CHECK(LEN([password])>=3)
	,[zipcode]varchar(6)CHECK(LEN([zipcode])=6 AND PATINDEX('%[^0-9]%',[zipcode])<=0)
	,[email]varchar(100)CHECK(CHARINDEX('@',[email])>0)
	,[loginname]varchar(50)CHECK(LEFT([loginname],1)NOT IN('^','_','@','#','.'))
)
GO
--非创建表的时候添加
ALTER TABLE [customer] ADD CONSTRAINT CK_password check(LEN([password])>=3)
--约束不能修改,需要删了重新执行上面那句

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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