正则表达式无法正常工作

时间:2014-10-11 15:35:01

标签: sql regex tsql

我在SQL Server语句中有这个约束。

([VehNo] like '[a-zA-Z][a-zA-Z],[a-zA-Z][0-9][0-9][0-9][0-9][a-zA-Z]')

但是当我尝试插入数据时,这给了我错误。

INSERT INTO [dbo].Car
VALUES ('SGD1234F','Ferrari','F30','2014-09-24','500000.00','500.00','excellent');

错误如下

  

消息547,级别16,状态0,行2 INSERT语句冲突   使用CHECK约束" vehNo_ck_validity"。冲突发生了   在数据库" t322",表" dbo.Car",列' VehNo'。该   声明已被终止。

我必须做出哪些改变?

1 个答案:

答案 0 :(得分:3)

您的正则表达式包含不需要的逗号。我在你的正则表达式中添加了空格来突出显示逗号。

[a-zA-Z][a-zA-Z] , [a-zA-Z][0-9][0-9][0-9][0-9][a-zA-Z]

对于此类正则表达式,VehNo应为SG,D1234F

删除额外的逗号,您的插入语句将起作用。

这是你的正则表达式的另一个版本:[a-zA-Z]{3}\d{4}[a-zA-Z]