我正試圖找到一種方法來使用正則表達式CHECK約束來驗證我的列中的數據,但迄今爲止只有遇到具有極其有限的正則表達式子集的LIKE
關鍵字。我想知道是否有辦法在檢查約束中使用正則表達式?在SQL Server中是否存在正則表達式檢查約束
我使用SQL Server 2005和2008
我正試圖找到一種方法來使用正則表達式CHECK約束來驗證我的列中的數據,但迄今爲止只有遇到具有極其有限的正則表達式子集的LIKE
關鍵字。我想知道是否有辦法在檢查約束中使用正則表達式?在SQL Server中是否存在正則表達式檢查約束
我使用SQL Server 2005和2008
我想你可以創建可以使用.NET Framework正則表達式班CLR標量UDF,然後調用從你的檢查約束。
事實上,this article討論了這種情況(搜索「檢查約束」,然後向後瀏覽文章以查找實現細節)。
我有點晚了這裏的線程,但看看我的有關如何做到這一點的文章:
http://xmlsqlninja.blogspot.com/2013/09/mdqregex-clr-functions-part-3-regex.html
到目前爲止,我只發現支持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