任何人都可以对此有所考虑:
我有一个表员工,其列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'。
答案 0 :(得分:1)
您的代码应该有效。但是我有两个建议。
一,获取真实员工编号列表,并使用FK验证您的专栏。
二,如果 是Employees表,您可能想尝试一下。
cast( cast( employeeNumber as int ) as char(8) ) = employeeNumber
AND cast(employeeNumber as int) > 10000000
AND charindex('0', employeeNumber) = 0