主题:自动编号触发器
自动编号触发器
表结构
sid id title projectid
1 CDTE-HBTL048-CZ01-08 采购合同 TL048
2 CDTE-HBTL048-CZ02-08 采购合同 TL048
3 CDTE-HBTL047-CZ01-08 采购合同 TL047
4 CDTE-HBTL048-CZ03-08 采购合同 TL048
5 CDTE-HBTL049-CZ01-08 采购合同 TL049
我的编码规则是:CDTE-HBTL048-CZ01-08
CDTE-HB是固定的
TL048是表里一个叫projectid,
-CZ是固定的
01是流水号,增长步长是1
-08取的是年份最后两位。
ID这个字段要求自动生成,请教各位大虾如何写这触发器。
我写的触发器代码如下:
--创建触发器
ALTER trigger ht_insert on Mat_PurchaseContract
for insert
as
declare @projectid varchar(10),@flowid int,@id varchar(30),@purchase_sid int
begin
select @projectid from inserted
select @purchase_sid from inserted
select @flowid=count(*) from Mat_PurchaseContract where projectid=@projectid
if @flowid<10
set @id='CDTE-HB'+@projectid+'CZ'+'0'+cast(@flowid as char(1))+convert(char(2),getdate(),12)
else
set @id='CDTE-HB'+@projectid+'CZ'+cast(@flowid as char(2))+convert(char(2),getdate(),12)
update Mat_PurchaseContract set purchasecode= @id where purchase_sid=@purchase_sid
end
但我执行完后,新增采购合同,ID字段仍然不能自动生成合同号(ID),请问哪个地方出错了
表结构
sid id title projectid
1 CDTE-HBTL048-CZ01-08 采购合同 TL048
2 CDTE-HBTL048-CZ02-08 采购合同 TL048
3 CDTE-HBTL047-CZ01-08 采购合同 TL047
4 CDTE-HBTL048-CZ03-08 采购合同 TL048
5 CDTE-HBTL049-CZ01-08 采购合同 TL049
我的编码规则是:CDTE-HBTL048-CZ01-08
CDTE-HB是固定的
TL048是表里一个叫projectid,
-CZ是固定的
01是流水号,增长步长是1
-08取的是年份最后两位。
ID这个字段要求自动生成,请教各位大虾如何写这触发器。
我写的触发器代码如下:
--创建触发器
ALTER trigger ht_insert on Mat_PurchaseContract
for insert
as
declare @projectid varchar(10),@flowid int,@id varchar(30),@purchase_sid int
begin
select @projectid from inserted
select @purchase_sid from inserted
select @flowid=count(*) from Mat_PurchaseContract where projectid=@projectid
if @flowid<10
set @id='CDTE-HB'+@projectid+'CZ'+'0'+cast(@flowid as char(1))+convert(char(2),getdate(),12)
else
set @id='CDTE-HB'+@projectid+'CZ'+cast(@flowid as char(2))+convert(char(2),getdate(),12)
update Mat_PurchaseContract set purchasecode= @id where purchase_sid=@purchase_sid
end
但我执行完后,新增采购合同,ID字段仍然不能自动生成合同号(ID),请问哪个地方出错了