進出口工作努力沒有拒絕其格式爲「03 XXXX XXXX」,所以我創建了一個表像正則表達式CHECK約束與SQL Server
create table records
(
....
num varchar(255) NOT NULL,
...
CONSTRAINT num_check CHECK (num like '03 [0-9]{4} [0-9]{4}')
)
應(我想?)接受例如「所有輸入03 1234 1234「。但如果我嘗試通過SQL管理器添加此錯誤消息: 「INSERT語句與CHECK約束衝突」num_check「」
起初我認爲我的正則表達式已關閉,但是我試圖在很少有其他地方,它接受上面的例子。 有什麼想法?
至於我知道你不能在SQL Server中實現Regex而不使用CLR程序集。它沒有像Oracle這樣的原生Regex支持......除非我的記憶讓我失望。 – scarpacci 2012-08-13 05:04:47
我正在關注我在這裏看到的一些事情。 http://www.dbforums.com/microsoft-sql-server/714703-check-constraint-regular-expressions.html – TrewTzu 2012-08-13 05:05:46
到目前爲止,我只找到一個支持posix regex約束的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:52:06