INSERT语句与CHECK约束冲突

时间:2013-05-05 09:09:22

标签: sql sql-server

任何人都可以对此有所考虑:

我有一个表员工,其列employeeNumber char(8)带有检查约束

(employeeNumber like '[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9]')

尝试将以下内容插入员工编号时:'12345678'

我收到以下错误:

  

Msg 547,Level 16,State 0,Line 1
  INSERT语句与CHECK约束“employeeNumber_check”冲突。冲突发生在数据库“MetukisDB”,表“dbo.TblEmployee”,列'employeeNumber'。

1 个答案:

答案 0 :(得分:1)

您的代码应该有效。但是我有两个建议。

一,获取真实员工编号列表,并使用FK验证您的专栏。

二,如果 是Employees表,您可能想尝试一下。

cast( cast( employeeNumber as int ) as char(8) ) = employeeNumber 
AND cast(employeeNumber as int) > 10000000
AND charindex('0', employeeNumber) = 0