Car*_*s00 2 .net c# regex sql sql-server-2008
如何编写此检查约束:
[AB] +,varchar列,非空字符串由A或B组成.
有些限制确实有效,但这种情况并非如此.
整理或其他问题?
SQL Server本身不支持Regex.
但是,可以添加检查约束以匹配您提供的模式
not like '%[^AB]%'
Run Code Online (Sandbox Code Playgroud)
测试:
declare @Test table(TestColumn varchar(100) check (TestColumn not like '%[^AB]%' and TestColumn != ''))
insert @Test
values ('AABAB') -- passed
insert @Test
values ('AAB') -- passed
insert @Test
values ('AABC') -- failed
insert @Test
values ('') -- failed
Run Code Online (Sandbox Code Playgroud)
LIKE模式非常有限.如果您需要真正的Regex约束,您可以实现非常简单的CLR功能.互联网上有很多例子.例如:正则表达式使模式匹配和数据提取更容易.