sql中如何实现只能输入A-Z之间的字符

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:11:02
先建一个表,设置其中一列只能输入A-Z之间的字符
我把原题说一下:
创建表book包含:书号字段
创建一个名为num_rule的规则,将其绑定到book表的‘书号’字段上,以限制书号字段由6位字符组成:前两位由大字母A-Z之间的字母组成,后四位由0-9之间的数字组成
一下是我写的
use xs
go
create rule num_rule as @num like '[char(65)-char(90)][char(65)-char(90)][0-9][0-9][0-9][0-9]'
go
use xs
exec sp_bindrule 'num_rule','book.书号'
go
输入小写字母时提示错误,输入数字、大写字母时却可以,为什么?

给分高点好不?
// 生成只能写字母的字段
Create Table TEST(ID Varchar(10) Check(ID not Like '%[^A-Z]%'))
GO
Insert TEST Values('1')
Insert TEST Values('7')
Insert TEST Values('12')
Insert TEST Values('ABC')
Insert TEST Values('A12')
Insert TEST Values('12D')
Select * from TEST
GO

你写的很好啊,你的要求和约束写的都是“前两位是大写字母,后四位是数字”,当然输入小写会出错误了

你的sql正则表达式写错了。

[char(65)-char(90)][char(65)-char(90)][0-9][0-9][0-9][0-9]
的含义是 前两位是大写字母,后4位是数字。所以排除了小写字母。[a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9]

对应C#里面的正则:^[a-zA-Z]{2}\d{4}$