Welcome to itblog

Every Day In Every Way I Am Getting Better And Better~

利用触发器生成编号

原贴: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

 


阅读更多
个人分类: SQL Sever
上一篇 SQL Server 2005 处理交叉表
下一篇SQL Server 2005 中的同义词
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭