首页 > 解决方案 > nvarchar 只需要包含英文或格鲁吉亚字母

问题描述

我的约束: (datalength([Firstname])>=(2) AND datalength([Firstname])<=(50) AND (NOT [Firstname] like '%[^a-zA-Z]%' AND NOT [Firstname] like N'%[^ა-ზ]%'))

添加带有格鲁吉亚字母的名字会导致错误:在此处输入图像描述

怎么了?

标签: sqlsql-serverconstraintscheck-constraints

解决方案


我对格鲁吉亚名字一无所知,但也许你选择的第一个和最后一个字母不适合你的整理。也许最好的办法是列出所有允许的字符。代替:

N'%[^ა-ზ]%'

也许是这样的:

 N'%[^ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺ'
+N'ႻႼႽႾႿჀჁჂჃჄჅჇჍაბგდევზთიკლმნოპჟრს'
+N'ტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹჺჼჽჾჿⴀⴁⴂⴃⴄⴅ'
+N'ⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢ'
+N'ⴣⴤⴥⴧⴭ]%'

除此之外,请确保所有逻辑运算符AND's、NOT's 和OR's 都是合适的。

您可能需要考虑此限制是否适合您的需要。人类的名字可能比你想象的更多样化。谷歌“ Falsehoods Programmers Believe About Names


推荐阅读