触发器怎样创建一个类型为CHAR型的自增长字段

waterlady955 2006-03-13 11:55:55
我的表中需要创建一个自增长类型的字段,但是这个字段是CHAR型的。。用触发器该怎么实现呢
...全文
66 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
huailairen 2006-03-14
你可以按照这个方法去创建。
create table autoadd(a char(5),b varchar(5))
--drop table autoadd

--drop trigger tr_autoadd
go
create trigger tr_autoadd
on autoadd
instead of insert
as
begin
declare @m varchar(5)
declare @n int
--select * from inserted
select @m=b from inserted
if (select count(*) from autoadd)=0
begin

insert into autoadd values('00001',@m)
end
else
begin
select @n=max(cast(a as int))+1 from autoadd

insert into autoadd values(replicate('0',5-len(cast(@n as varchar(5))))+cast(@n as varchar(5)),@m)
end
if @@error<>0
begin
rollback tran
end
end


insert into autoadd(b) values('a')
回复
wgsasd311 2006-03-14
把你自增长的格式列出来:
比如:1,2,3,4......
或:0001,0002,003......
或:a,b,c,d......
回复
OracleRoob 2006-03-14
变通一下,给表设置一个int型自增列,在触发器中根据这个自增字段的值转换为char型,然后更新char型字段的值
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-13 11:55
社区公告
暂无公告