可以考虑在insert语句中判断。毕竟你这里也只有3种情况而已。
解决方案 »
- 在本地查询后直接插入远程SQL数据库,这样的存储过程如何写?
- 查询 合计,有条件的合计,2者相除
- sqlserver2000中,image字段如何导出到excel2000中!
- 请高手看看?为何{"第 15 行: ',' 附近有语法错误。\r\n在关键字 'AS' 附近有语法错误。\r\n在关键字 'AS' 附近有语法错误。" }
- 请教各位关于SQL SERVER安装在WINDOWS 2003操作系统上的问题
- ACCESS如何更新相关字段
- 研究过access的进来一下,access是否支持函数dateadd(),在线等!!
- 【索引疑惑】
- MySql 无法连接的问题。
- 如何在把文本数据导入数据库时,去掉重复的记录?
- sql 存储数据范围查询问题
- ecplise和sql server2008连接出现问题
ALTER TABLE dbo.tb1 ADD CONSTRAINT CHK_Tel_No_valid CHECK
(
Tel_No LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
or Tel_No LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
or Tel_No LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
);
insert into tb1 select '12345678901'
insert into tb1 select '123-12345678'
insert into tb1 select '1234-12345678'
insert into tb1 select '1234a12345678'
/*
(1 行受影响)(1 行受影响)(1 行受影响)
消息 547,级别 16,状态 0,第 5 行
INSERT 语句与 CHECK 约束"CHK_Tel_No_valid"冲突。该冲突发生于数据库"mydb",表"dbo.tb1", column 'Tel_No'。
语句已终止。
*/
ALTER TABLE dbo.tb1 ADD CONSTRAINT CHK_Tel_No_valid CHECK
(
(LEN(Tel_No) = 11 AND Tel_No NOT LIKE '%[^0-9]%')
OR (LEN(Tel_No) = 12 AND STUFF(Tel_No,4,1,'') NOT LIKE '%[^0-9]%' AND Tel_No LIKE '%-%' )
OR (LEN(Tel_No) = 13 AND STUFF(Tel_No,5,1,'') NOT LIKE '%[^0-9]%' AND Tel_No LIKE '%-%' )
);阳春白雪、下里巴人 任选,个人喜好第一个