1

我正在尝试对 ID 号执行 SQL 检查约束

Name: EmployeeID
Data Type: char
Size: 10

我正在使用 Microsoft SQL Server 2008 R2,我无法理解它如何使用一些可以在查询中工作的 SQL 命令,但由于某种原因不能作为检查约束。

我正在尝试使用 LIKE 来做到这一点,例如

EmployeeID LIKE '[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]'

但它不接受这一点,有没有更好的方法来解决这种约束?

谢谢你。

4

2 回答 2

3

方括号之间没有空格,它应该可以工作:

EmployeeID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
于 2012-11-20T18:06:48.920 回答
2

您的约束当前需要存在 9 个空格。尝试:

EmployeeID LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

或许:

LEN(EmployeeID) = 10 and EmployeeID not like '%[^0-9]%'

这表示没有字符在组之外,0-9并且长度为 10 个字符 - 如果将来需要更改长度,则更易于维护。

于 2012-11-20T18:07:13.697 回答