问一个按时间排序的触发器的问题
如题 做了个按时间排序的触发器
几经调试 已经成功 代码如下
CREATE TRIGGER new_insert ON dbo.ShrinkOrder
after INSERT
AS
declare @Orderid char(11)
declare @TODAY char(8)
declare @num int
declare @count int
begin
select @TODAY=convert(char(8),getdate(),112)
select @num=(select count(orderid) from shrinkorder where orderid like @today+'%')
if @num=0
begin
select @count=0
end
else
begin
select @count=(select top 1 convert(int,right(OrderId,3)) from ShrinkOrder where orderid like @TODAY+'%' order by orderid desc)
end
select @Orderid=@TODAY+right('000'+ltrim(convert(char(3),@count)+1),3)
update ShrinkOrder set OrderId=@Orderid where OrderId='9999999999'
end
但是有个问题没弄明白 我定义的局部变量@count为整型 最后在更新@Orderid的时候对@count的加1操作 为什么要在变成字符型之后才行?
问题就是这句
select @Orderid=@TODAY+right('000'+ltrim(convert(char(3),@count)+1),3)
如果我在之前加1 也就是
select @Orderid=@TODAY+right('000'+ltrim(convert(char(3),@count+1)),3)这样
自动生成的编号就变成200609131而不是20060913001了…………
请问下 这到底是为什么啊?