SQL Server 2008中的正则表达式

Car*_*s00 2 .net c# regex sql sql-server-2008

如何编写此检查约束:

[AB] +,varchar列,非空字符串由A或B组成.

有些限制确实有效,但这种情况并非如此.
整理或其他问题?

Ale*_*Aza 7

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功能.互联网上有很多例子.例如:正则表达式使模式匹配和数据提取更容易.