62,046
社区成员
发帖
与我相关
我的任务
分享
ALTER TRIGGER [dbo].[Trigger_Insert]
ON [dbo].[TableA]
After INSERT
AS
BEGIN
declare @pkid int,@pid varchar(14),@temppid varchar(14)
--从Inserted表中取得主键的自动编号
select @pkid=pkid from Inserted
--获取当前日期格式为"P20081010"
select @pid = 'P' + Convert(varchar(8),GetDate(),112);
--获取最后一个PID
select top 1 @temppid=pid from TableA where pid like @pid+'%' order by pkid desc
if (@temppid is null)
begin
--如果今天没有插入过数据,则初始值为'P200810100001'
set @pid = @pid + '0001'
end
else
begin
--否则从最后一个日期取得编号,并末尾加上1,组成新编号
set @pid = @pid + right(cast(power(10,4) as varchar)+(convert(int,substring(@temppid,10,4))+1),4)
end
--更新编号
update TableA set pid=@pid where pkid = @pkid
END