Sql server sql:如何添加关于';始终包含某些内容';
我只是想知道,如何在sql server上编写约束,它应该始终包含一个Sql server sql:如何添加关于';始终包含某些内容';,sql-server,Sql Server,我只是想知道,如何在sql server上编写约束,它应该始终包含一个'@'符号和一个'.。我应该用支票还是什么?实际上是关于一封电子邮件 您可以像这样创建检查约束 使用类似于运算符的 ALTER TABLE Yourtable ADD CHECK (email_col like '%@%.%') 使用CHARINDEX函数 ALTER TABLE Yourtable ADD CHECK (Charindex('@',email_col)>0 AND Charindex('.',
'@'
符号和一个'.
。我应该用支票还是什么?实际上是关于一封电子邮件 您可以像这样创建检查约束
使用类似于
运算符的
ALTER TABLE Yourtable ADD CHECK (email_col like '%@%.%')
使用CHARINDEX
函数
ALTER TABLE Yourtable
ADD CHECK (Charindex('@',email_col)>0 AND Charindex('.', email_col, Charindex('@', email_col)+1 )>0)
这是一个用户界面验证,而不是数据库validation@techspider这也可以作为对DB的约束。就我个人而言,我更喜欢数据库级别的数据约束,以尽可能地保护我的数据。@SeanLange-是的,可以!!但是,我在将数据验证放在约束上时有些犹豫。如果我没有提供有效的电子邮件,为什么我的请求要一直发送到DB?它可以通过简单的JavaScript验证捕获。我理解你让某人尝试插入DB的意思。但是,如果我们遵循这个规则,我们可能会在DB约束中重复每个验证。作为负责数据的人,我不太相信前端。此外,数据进入数据库的方式比前端多。如果约束在数据库级别,那么某人就不能在SSMS中通过查询意外地输入无效数据。当前端发生变化时会发生什么?现在要么没有验证,要么必须重新编写。