?? 材料流水號(hào).sql
字號(hào):
--自動(dòng)編號(hào)的例子.材料編號(hào)=類別編號(hào)+流水號(hào)
--創(chuàng)建自定義函數(shù),得到新的ID
create function f_getid(
@類別編號(hào) varchar(3))
returns int
as
begin
declare @re int
select @re=right(id,4) from(
select id=max(材料編號(hào)) from tb where 類別編號(hào)=@類別編號(hào)
) a
set @re=isnull(@re,0)+1
return(@re)
end
go
--創(chuàng)建測(cè)試表
create table tb(材料編號(hào) varchar(7) primary key default '',類別編號(hào) varchar(3),材料名稱 varchar(10))
go
--創(chuàng)建觸發(fā)器,自動(dòng)生成材料編號(hào)
create trigger t_insert on tb
instead of insert
as
select * into #t from inserted order by 類別編號(hào)
declare @類別編號(hào) varchar(3),@id int
update #t set @id=case when @類別編號(hào)=類別編號(hào) then @id+1 else dbo.f_getid(類別編號(hào)) end
,材料編號(hào)=類別編號(hào)+right('0000'+cast(@id as varchar),4)
,@類別編號(hào)=類別編號(hào)
insert into tb select * from #t
go
--插入數(shù)據(jù)測(cè)試
insert into tb(類別編號(hào),材料名稱)
select '101','A材料'
union all select '101','B材料'
union all select '302','C材料'
--顯示結(jié)果
select * from tb order by 材料編號(hào)
go
--刪除測(cè)試環(huán)境
drop table tb
drop function f_getid
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -