利用触发器生成编号

原贴:http://community.csdn.net/Expert/topic/4294/4294910.xml?temp=.3575403

有一表(ID,product_id,product_name),其中ID是自动编号,当向这表添加数据时候,product_id自动添加数据,格式是"wpbh"&max(id)+1,这样的触发器怎么写?(注意:product_id字段的数据是要求通过触发器添加的,由添加数据前最大的ID+1 组成。)

方式一:

-测试环境
--建表
Create table  Testt  (ID int IDENTITY(1,1),product_id varchar(10) ,product_name varchar(20))

--建触发器
Create Trigger T_Testt on Testt
for insert
as
update Testt
set product_id='wpbh'+convert(varchar,ID)
where ID=(select ID from inserted)

--插入数据
insert into Testt select NULL,'A'
insert into Testt select NULL,'B'
insert into Testt select NULL,'C'
--查看结果 select * from Testt
--结果:
ID          product_id product_name        
----------- ---------- --------------------
1           wpbh1      A
2           wpbh2      B
3           wpbh3      C

方式二:

--如果楼住实现当前product_id 的ID 是当前ID+1 就这样写触发器

Create Trigger T_Testt on Testt
for insert
as
update Testt
set product_id='wpbh'+convert(varchar,ID+1)
where ID=(select ID from inserted)


--测试语句
insert into Testt select NULL,'A'
insert into Testt select NULL,'B'
insert into Testt select NULL,'C'

--查看结果 select * from Testt
 
ID          product_id product_name        
----------- ---------- --------------------
1           wpbh2      A
2           wpbh3      B
3           wpbh4      C

--删除测试环境
Drop table Testt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值