im essayant de rejeter toutes les entrées non dans le format « 03 xxxx xxxx » donc je créé une table commecontrainte Regex CHECK ne fonctionne pas avec le serveur SQL
create table records
(
....
num varchar(255) NOT NULL,
...
CONSTRAINT num_check CHECK (num like '03 [0-9]{4} [0-9]{4}')
)
qui devrait (je pense?) Accepter par exemple " 03 1234 1234 ". mais si je tente d'ajouter ce via le gestionnaire sql je reçois une erreur avec le message: « l'instruction INSERT en conflit avec la contrainte CHECK « num_check » »
au début, je pensais que mon Regex était hors mais Ive a essayé dans un quelques autres endroits et il accepte l'exemple ci-dessus. des idées?
En ce qui concerne Je sais que vous ne pouvez pas implémenter Regex dans SQL Server sans utiliser un Assemblage CLR. Il n'a pas de support Regex natif comme le fait Oracle ... à moins que ma mémoire ne me manque. – scarpacci
Je suivais quelque chose que j'ai vu ici. http://www.dbforums.com/microsoft-sql-server/714703-check-constraint-regular-expressions.html – TrewTzu
Jusqu'ici, j'ai seulement trouvé un DBE qui supporte les contraintes posix regex et c'est Oracle (Référence: http://stackoverflow.com/questions/35157662/is-there-a-database-engine-that-allows-for-queriable-field-constraint-specified). MS SQL et DB2 ont l'air d'avoir leur propre variante générique, ce qui est regrettable car vous perdez la cohérence des contraintes entre les couches :( –