打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql server 2000触发器:根据类型自动生成编码 赛迪网技术社区

sql server 2000触发器:根据类型自动生成编码

/*
sql server 2000触发器:根据类型自动生成编码!

此触发器的作用是根据类型字段的值自动生成编码。

编码的生成的规则是:根据类型找出编码中该类型的最大值。然后在该最大的编码上加1,作为当前插入的编码值。

只要修改一下表名和表的两个字段,就可以实现通用。


type:sql server 2000 trigger

author:kfy0228@163.com

createDate: 2008-05-25

*/

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

--根据插入的queryType值只自动生成queryCode的值。

ALTER trigger tri_querySave_add
on dbo.t_comm_querySaveTable
for insert
as
declare @queryType varchar(8)
declare @queryCode varchar(12)
declare @id int
select @id=id,@queryType=queryType,@queryCode=queryCode from inserted
DECLARE tree_cursor CURSOR
FOR select queryCode from t_comm_querySaveTable where queryType=@queryType and queryCode is not null order by

queryCode

OPEN tree_cursor
declare @code varchar(12)
declare @i bigint

  declare @query varchar(12)
  set @query=@queryType+'0001'
  update t_comm_querySaveTable set queryCode=@query where id=@id


FETCH NEXT FROM tree_cursor into @code

set @i=cast(@code as bigint)


WHILE @@FETCH_STATUS = 0
BEGIN

  if(@i<cast(@code as bigint))
  begin

update t_comm_querySaveTable set queryCode=right('0000000000'+cast(@i as varchar(12)),len(@code)) where id=@id

break
  end
  else
  begin
update t_comm_querySaveTable set queryCode=right('0000000000'+cast(cast(@code as bigint)+1 as varchar(12)),len

(@code)) where id=@id
  end
  set @i=@i+1
  FETCH NEXT FROM tree_cursor INTO @code
 
END

CLOSE tree_cursor
DEALLOCATE tree_cursor

SET NOCOUNT OFF


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
牛刀小试PLSQL编程之筑基篇
外国的注入技巧收集
最全的Java笔试题库之选择题篇-总共234道【181~234】
请教:触发器中select语句里面的表名称不能使用变量吗?
sql的数据类弄杂谈
SQL SERVER:select 字符串拼接问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服