0

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

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

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

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

我收到以下错误:

消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 CHECK 约束“employeeNumber_check”冲突。冲突发生在数据库“MetukisDB”、表“dbo.TblEmployee”、列“employeeNumber”中。

4

1 回答 1

1

您的代码应该可以工作。不过我有两个建议。

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

二,如果这Employees表,你可能想试试。

cast( cast( employeeNumber as int ) as char(8) ) = employeeNumber 
AND cast(employeeNumber as int) > 10000000
AND charindex('0', employeeNumber) = 0
于 2013-05-06T04:54:33.440 回答