您的位置:首页 > 数据库

SQL怎样自动生成编号格式如:BV+YYYYMM+编号

2008-06-03 12:40 441 查看
使用触发器来实现
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字段会自动编好号

**************

'VB' + datename(year,getdate()) + datename(month,getdate()) + convert(char(1),convert(int ,rand()*10))

****************

select 'BV' substring(convert(char(20),date_col,yyyy-mm-dd hh:mm:ss),1,10) to_char(num_col)from tablename

date_col是你时间列 如果没有可以用sysdate()代替
tablename是你的表名
num_col是你的编号列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: