我有一个包含Email
字段的数据库表。不知何故,无效的电子邮件地址已通过应用程序验证,并进入数据库字段。
如何在此字段中添加约束,以便无法存储无效的电子邮件地址?
答案 0 :(得分:1)
这取决于有效对您意味着什么。对我来说,电子邮件地址可能有效(也就是说,它是根据RFC 5322正确形成的),但我可能无法发送给它。您是否需要测试a)地址格式或b)您向其发送电子邮件的能力取决于应用程序。
如果您只是想确保用户的电子邮件地址格式正确,那么您将无法通过正则表达式进行验证。祝你好运。有关令人沮丧的详细信息,请参阅RFC 3696,“3。对电子邮件地址的限制。
在我的脑海中,以下是我过去用来帮助客户做出有关电子邮件验证的决定的一些指导要点。
根据您的走向,您需要更宽松或更紧凑的正则表达式。根据我的经验,大多数时候大多数人都会使用更宽松的验证。
答案 1 :(得分:0)
根据this article,SQL Server支持CHECK约束中的正则表达式。 再加上一个可靠的电子邮件验证正则表达式,你应该很高兴。
如果您使用的是SQL Server 2005或更高版本,并且在CHECK约束中调用它,则可以在SQL Server中enable CLR Integration和create a CLR function。 CLR函数将处理正则表达式验证。
答案 2 :(得分:0)
请看一下我在这里发布的最简单的例子