可以计数了 但只是停留在NodeId 是3和4两个值的时候的,如果多了这个写肯定不行,下面的IF不知道用的对不对如果有两个数组
a1(1,3,4,6)
b1(2,7,8,9)
再者如果 @noie等于数组a1中其中的一个数字 就给@indexq赋0000141003/, 如果等于b1中其中的一个数字就给@indexq赋0000141004/,如果@noie的值在a1或b2中都没有,就不执行蓝色的语句!如何定义这两个数组,下面红色的赋值语句应该怎么写.还有我觉的用这种方法赋值比较笨,有没有先进一点的方法,请帮助我!全部代码:
create trigger [dbo].[Trigger2]
ON [dbo].[au_Content]
FOR Insert
AS
begin
declare @noid as varchar(3)
select @noid = NodeId from inserted
declare @id as int
select @id = ID from inserted
declare @fuhao as char(1)
select @fuhao='-'
declare @indexq as varchar(11)
if @noid = '3'
begin
select @indexq ='0000141003/'
end
if @noid = '4'
begin
select @indexq ='0000141004/'
end
if len(@indexq)>1
begin
declare @number as varchar(20)
select @number = isnull(cast(right(max(IndexNo),5) as int),0)+1 from au_Content where IndexNo like @indexq + convert(varchar(4),getdate(),112)+'%' set @number=right('0000'+@number,5);
update dbo.au_Content set IndexNo = @indexq+ convert(varchar(4),getdate(),112) + @fuhao + right(@number,5) where ID=@id end
end
a1(1,3,4,6)
b1(2,7,8,9)
再者如果 @noie等于数组a1中其中的一个数字 就给@indexq赋0000141003/, 如果等于b1中其中的一个数字就给@indexq赋0000141004/,如果@noie的值在a1或b2中都没有,就不执行蓝色的语句!如何定义这两个数组,下面红色的赋值语句应该怎么写.还有我觉的用这种方法赋值比较笨,有没有先进一点的方法,请帮助我!全部代码:
create trigger [dbo].[Trigger2]
ON [dbo].[au_Content]
FOR Insert
AS
begin
declare @noid as varchar(3)
select @noid = NodeId from inserted
declare @id as int
select @id = ID from inserted
declare @fuhao as char(1)
select @fuhao='-'
declare @indexq as varchar(11)
if @noid = '3'
begin
select @indexq ='0000141003/'
end
if @noid = '4'
begin
select @indexq ='0000141004/'
end
if len(@indexq)>1
begin
declare @number as varchar(20)
select @number = isnull(cast(right(max(IndexNo),5) as int),0)+1 from au_Content where IndexNo like @indexq + convert(varchar(4),getdate(),112)+'%' set @number=right('0000'+@number,5);
update dbo.au_Content set IndexNo = @indexq+ convert(varchar(4),getdate(),112) + @fuhao + right(@number,5) where ID=@id end
end
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货