Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql:如何添加关于';始终包含某些内容';_Sql Server - Fatal编程技术网

Sql server sql:如何添加关于';始终包含某些内容';

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('.',

我只是想知道,如何在sql server上编写约束,它应该始终包含一个
'@'
符号和一个
'.
。我应该用支票还是什么?实际上是关于一封电子邮件

您可以像这样创建
检查
约束

使用类似于
运算符的

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中通过查询意外地输入无效数据。当前端发生变化时会发生什么?现在要么没有验证,要么必须重新编写。