首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

约束解决办法

2013-01-07 
约束给一个列(此列不是主键和外键)添加约束,使约束为D+数字,数字为自动增长的[解决办法]USE tempdbGOCREAT

约束
给一个列(此列不是主键和外键)添加约束,使约束为D+数字,数字为自动增长的
[解决办法]

USE tempdb
GO
CREATE TABLE T(Col VARCHAR(50) )
go
ALTER TABLE T ADD CONSTRAINT CK_T_Col CHECK( Col LIKE 'D%' AND Col NOT LIKE 'D%[^0-9]%')

go

INSERT T SELECT 'D123456' --OK
INSERT T SELECT '123456' --Error
INSERT T SELECT 'F123456' --Error
DROP TABLE T

[解决办法]
create table DD(
id int identity(1,1) NOT NULL,
D_ID  as 'D'+LTRIM(10000+id),--这里改成计算列,缺点是这个列是不能被更新的
name varchar(50) NULL,
 )
 go

insert into DD values('aa')
insert into DD values('aa')
insert into DD values('aa')
insert into DD values('aa')
select * from DD
/*
idD_IDname
1D10001aa
2D10002aa
3D10003aa
4D10004aa
*/

UPDATE DD SET D_ID='D10004' WHERE id=1
/*
消息 271,级别 16,状态 1,第 1 行
不能修改列 "D_ID",因为它是计算列,或者是 UNION 运算符的结果。

*/

热点排行