自动编号触发器

表结构
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),请问哪个地方出错了