利用触发器生成编号

转载 2006年05月24日 14:41:00

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

 


利用触发器生成编号

原贴:http://community.csdn.net/Expert/topic/4294/4294910.xml?temp=.3575403有一表(ID,product_id,product_na...
  • zlp321002
  • zlp321002
  • 2005年08月14日 17:20
  • 1067

[学习记录]Mysql使用TRIGGER自动生成订单号

CREATE TABLE Order(order_id VARCHER(12) PRIMARY KEY, name VARCHER(100) ); delimiter $$ ...
  • luodeyitian
  • luodeyitian
  • 2017年03月13日 09:33
  • 80

SQL Server 开发之 使用触发器自动编号

使用SQL Server创建数字类型的字段,可以设置为自动编号。但很多时候并不能满足我们的需求,例如为学生编号时,可能要用到年级、系别等再加上流水号进行编号。下面给一个简单的例子,使用触发器来进行自动...
  • fengfangfang
  • fengfangfang
  • 2006年06月29日 13:20
  • 4516

创建自动生成单号或者流水号的触发器

create     trigger t_JianChaHuaYanon JianChaHuaYaninstead of insertasbegin  declare @BianHao varchar...
  • xinfu032
  • xinfu032
  • 2007年10月20日 13:59
  • 660

sql server触发器自动生成编号

--创建编号 alter TRIGGER syttyzNumberCreate ON syttyz after INSERT AS DECLARE @id nvarchar...
  • myk_666888
  • myk_666888
  • 2010年07月21日 16:51
  • 1072

触发器(trigger) 日期+流水=编号

create table tb(colID int identity,status int,ID nvarchar(14))gocreate trigger test on tbfor insert,...
  • simonhehe
  • simonhehe
  • 2007年08月23日 17:17
  • 823

利用触发器自动生成单据编号

根据日期生成单据编号,生成的格式为:P200810100001(即是PyyyyMMdd0000),后面是4位数字,按照该天记录数累加。例如:P200810090001P200810100001 P20...
  • kun00
  • kun00
  • 2010年04月16日 14:10
  • 276

SQLServer中一个多用户自动生成编号的过程

if not exists (select * from dbo.sysobjects where id = object_id(N[IndexTable]) and OBJECTPROPERTY(i...
  • cnhgj
  • cnhgj
  • 2004年12月10日 23:57
  • 842

oracle如何写一个触发器及序列号

通过PL\SQL工具就可以实现下列的这些代码,下面讲一个oracle如何设置序列自动增长 --创建表     createtable book(         bookId varchar2...
  • zhousenshan
  • zhousenshan
  • 2016年02月27日 16:03
  • 280

数据库唯一序列号生成方案

首先,我们得知道为什么需要制定数据库唯一序列号生成方案,难道MySQL的主键自增长不好用吗?当然不是。由于现在的业务数据量越来越大,有时候将数据放在一张表里,压力非常大,所以要进行分库分表。一旦进行了...
  • JobsandCzj
  • JobsandCzj
  • 2017年12月22日 14:49
  • 196
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 利用触发器生成编号
举报原因:
原因补充:

(最多只允许输入30个字)