SQL Server中是否支持正则表达式检查约束?

3

我正在尝试使用正则表达式CHECK约束验证我的列中的数据,但到目前为止,我只遇到了LIKE关键字,它具有极其有限的正则表达式语法子集。我想知道是否有一种方法可以在检查约束中使用正则表达式?

我正在使用SQL Server 2005和2008。


1
到目前为止,我只发现一个支持posix正则表达式约束的DBE,那就是Oracle(参考:http://stackoverflow.com/questions/35157662/is-there-a-database-engine-that-allows-for-queriable-field-constraint-specified)。MS SQL和DB2似乎有自己的通配符变体,这很不幸,因为你会失去层间约束的一致性:( - James Oravec
1
相关的DBA网站QA... https://dba.stackexchange.com/q/266438/3690 - Martin Smith
2个回答

4
我认为你可以创建一个CLR标量UDF,它可以使用.Net框架的RegEx类,然后从你的检查约束中调用它。
实际上,这篇文章讨论了这种情况(搜索“Check Constraint”,然后向后移动文章以查找实现细节)。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接