sql表中的ID列只能是8位数字,前两位是0,3-4位为数字,第五位为下划线,6~8位为字母 check表达式怎么写
该列为 varchar :*主要是第五位是下划线不行 变成任意字符了
这是我写的:(len([ID])=(8) AND [ID] like '00[0-9][0-9]_[a-z][a-z][a-z]'
求高手解答 刚开始学习数据库
------解决方案--------------------
SQL SERVER 2005 测试没问题
USE [GT]
GO
/****** 对象: Table [dbo].[test] 脚本日期: 06/14/2014 11:02:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[a](ID varchar(8) CHECK (len(ID)=8 AND ID like '00[0-9][0-9]_[a-z][a-z][a-z]'),date DATETIME)
INSERT INTO dbo.A
SELECT '0012_ayo','2014-06-14'
SELECT * FROM a
/*
ID date
0012_ayo 2014-06-14 00:00:00.000
*/
------解决方案--------------------
val like '00[0-9][0-9]!_[a-z][a-z][a-z]' escape '!'
val like '00[0-9][0-9][_][a-z][a-z][a-z]'
------解决方案--------------------
CREATE TABLE #T(Col VARCHAR(8) CONSTRAINT CHK_#T_Col CHECK (Col LIKE '00[0-9][0-9][_][a-z][a-z][a-z]' ))
长度条件不需要,Like已经限制长度了,或用栏位类型限制char(8)/varchar(8)