SQL SERVER2008关于VARCHAR类型的CHECK约束问题
列名为ID数据类型VARCHAR(10)为ID增加约束,同时满足以下条件:只能是8位字符前两位是03-4位是为数字第5位为下划线6-8位为字母...
列名为ID 数据类型VARCHAR(10)
为ID增加约束,同时满足以下条件:
只能是8位字符
前两位是0
3-4位是为数字
第5位为下划线
6-8位为字母 展开
为ID增加约束,同时满足以下条件:
只能是8位字符
前两位是0
3-4位是为数字
第5位为下划线
6-8位为字母 展开
展开全部
--建立一个表,有两个字段:ID, DataValue
--为 ID 字段建立约束:主键、CHECK
CREATE TABLE [dbo].[TemplateTb](
[ID] [varchar](10) NOT NULL,
[DataValue] [nvarchar](50) NULL,
CONSTRAINT PrimaryKey_UniqueID PRIMARY KEY([ID]),
CONSTRAINT Check_UniqueID CHECK (
LEN([ID])=8 AND
LEFT([ID],2)='00' AND
ISNUMERIC(SUBSTRING([ID],3,2))=1 AND
SUBSTRING([ID],5,1)='_' AND
SUBSTRING([ID],6,3) NOT LIKE '%[^a-zA-Z]%'
)
)
经测试完全OK ,如果你的表已经建立,可在 SQL Server 管理工具中为字段 ID 添加约束,然后把 CHECK 关键字后面的的条件表达式复制到"CHECK 约束"中的“常规”,“表达式”内
--为 ID 字段建立约束:主键、CHECK
CREATE TABLE [dbo].[TemplateTb](
[ID] [varchar](10) NOT NULL,
[DataValue] [nvarchar](50) NULL,
CONSTRAINT PrimaryKey_UniqueID PRIMARY KEY([ID]),
CONSTRAINT Check_UniqueID CHECK (
LEN([ID])=8 AND
LEFT([ID],2)='00' AND
ISNUMERIC(SUBSTRING([ID],3,2))=1 AND
SUBSTRING([ID],5,1)='_' AND
SUBSTRING([ID],6,3) NOT LIKE '%[^a-zA-Z]%'
)
)
经测试完全OK ,如果你的表已经建立,可在 SQL Server 管理工具中为字段 ID 添加约束,然后把 CHECK 关键字后面的的条件表达式复制到"CHECK 约束"中的“常规”,“表达式”内
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询