根据 标识 自动编号
2009-07-18 02:29
141 查看
create table TestTableTrigger(BH varchar(8))
GO
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET ANSI_WARNINGS OFF
go
ALTER trigger [dbo].[Trigger_Insert] on [dbo].[TestTableTrigger]
instead of insert
as
select * into #t
from inserted a join(
select gid_new=b.BH,sid_new=10000001+isnull(max(ISNULL(cast(right(a.BH,6) as int),0)),0)
from TestTableTrigger a
right join inserted b on charindex(b.BH,a.BH)=1
group by b.BH
)b on a.BH=b.gid_new
order by b.gid_new
declare @nid CHAR(2),@a int
update #t set @a=case @nid when gid_new then @a+1 else sid_new end
,BH=gid_new+Cast(right(@a,6) as char(6))
,@nid=gid_new
insert TestTableTrigger select BH from #t
---测试数据
Insert INTO TestTableTrigger
SELECT 'AC'
UNION ALL SELECT 'AC'
GO
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET ANSI_WARNINGS OFF
go
ALTER trigger [dbo].[Trigger_Insert] on [dbo].[TestTableTrigger]
instead of insert
as
select * into #t
from inserted a join(
select gid_new=b.BH,sid_new=10000001+isnull(max(ISNULL(cast(right(a.BH,6) as int),0)),0)
from TestTableTrigger a
right join inserted b on charindex(b.BH,a.BH)=1
group by b.BH
)b on a.BH=b.gid_new
order by b.gid_new
declare @nid CHAR(2),@a int
update #t set @a=case @nid when gid_new then @a+1 else sid_new end
,BH=gid_new+Cast(right(@a,6) as char(6))
,@nid=gid_new
insert TestTableTrigger select BH from #t
---测试数据
Insert INTO TestTableTrigger
SELECT 'AC'
UNION ALL SELECT 'AC'
相关文章推荐
- 根据日期自动生成序列编号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号(zt)
- php根据数据id自动生成编号
- 动态SQL根据旧编号自动排序生成有规则的新编号
- Oracle 自动生成标识列, 比如订单编号,学生ID
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- php根据数据id自动生成编号的实现方法
- 自已做标识列的例子 不自动重排编号 而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 根据日期产生自动编号
- Oracle利用Sequence和触发器Trigger实现Columns的Default自动编号(标识)
- php根据数据id自动生成编号的实现方法
- C# 根据数据库 自动生成最大编号,应用于各编号的生成
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 根据一定规则为数据表新增记录自动编号的存储过程
- 自已做标识列的例子,不自动重排编号,而是自动补号
- Word2013对公式处理:样式、自动编号、交叉引用
- Access数据库“自动编号”字段归零
- 根据判断PC浏览器类型和手机屏幕像素自动调用不同CSS的代码
- 【mybatis】根据model自动生成 mapper service dao 层的工具类