2011-06-08 34 views
3

我正試圖找到一種方法來使用正則表達式CHECK約束來驗證我的列中的數據,但迄今爲止只有遇到具有極其有限的正則表達式子集的LIKE關鍵字。我想知道是否有辦法在檢查約束中使用正則表達式?在SQL Server中是否存在正則表達式檢查約束

我使用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看起來像他們有自己的通配符變體,這是不幸的,因爲你鬆散層之間的約束一致性:( – 2016-02-02 16:54:02

回答

4

我想你可以創建可以使用.NET Framework正則表達式班CLR標量UDF,然後調用從你的檢查約束。

事實上,this article討論了這種情況(搜索「檢查約束」,然後向後瀏覽文章以查找實現細節)。