触发器自动生成编号

使用触发器来实现
create table test(
id varchar(20),
sname varchar(20)
)

create TRIGGER [test_insert] ON [dbo].[test]
INSTEAD OF INSERT
AS
declare @str varchar(20)
declare @i integer
set @str = 'BV'+left(convert(char,getdate(),112),6)
select @i=isnull(max(cast(right(rtrim(id),len(id)-8) as integer)),0) from
(select id from test where id like @str+'%') a
set @i=@i+1
INSERT INTO TEST
SELECT @STR++cast(@i as char)as id,sname from inserted



上面建好后执行:
insert into test(sname) values('test')
id字段会自动编好号

利用AS的 代码块 替代 逻辑表到真实表的插入操作。

posted @ 2008-11-27 20:12  草莓爸  阅读(502)  评论(0编辑  收藏  举报