标题:我的自动编号增加问题还是出错了
取消只看楼主
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
 问题点数:0 回复次数:5 
我的自动编号增加问题还是出错了

我再解释一下我的程序,@ISDN是书号,@TotalStock是输入总共要录入的书的总量.编号BookID根据总量自动增加用@TotalStock来控制增加的本数.然后再添加@TotalStock条记录.
这是我的存储过程,昨天又写了一段代码,现在语法出错了
显示:在关键字 'insert' 附近有语法错误。希望高手看到后能回复一下,谢谢
create proc Insert_BookStateInfo
@ISDN varchar(10),
@TotalStock integer
as
begin tran
declare @State varchar(10),@BookID varchar(13),@i integer
set @i=1
while (@TotalStock>=@i)
begin
set @State='归还'
set @BookID=left(BookID,10)+(convert(varchar(3),(select max(convert(int,right(BookID,len(BookID)-10)))+1 from BookStateInfo where ISDN='AT-001-000' ))
insert into BookStateInfo(ISDN,BookID,State)
values(@ISDN,@BookID,@State)
set @i=@i+1
end
update BookInfo
set TotalStock=isnull(TotalStock,0)+@TotalStock
from BookInfo as a ,BookStateInfo as b
where a.ISDN=b.ISDN and b.ISDN=@ISDN
commit
搜索更多相关主题的帖子: 自动 
2006-04-13 13:47
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
得分:0 

哈哈.终于做出来了.非常感谢版主的帮忙.谢谢,谢谢,非常谢谢.
看来这个论坛还真是藏龙卧虎之地.以后要多来逛逛.
我做这个系统问题还是非常多的,希望各位前辈能够多多指教.


2006-04-14 11:17
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
得分:0 

嗯,对,不过还是有点问题.
本来如果已有的图书编号为AT-001-001-003
那么再增加一本按我刚才的代码就变成AT-001-001-4
而不是AT-001-001-004
这个应该怎么控制呢?


2006-04-14 12:02
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
得分:0 

版主,其实是这样的,我们导师给我的表中书号(ISDN)图书编号(BookID)都定义为10,后来我们发现这样定义不太好,因为书号是某一本书,而图书编号是区别同一本书的不同编号,所以我就把它改了,长度为14


2006-04-14 15:04
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
得分:0 
哈哈,又调出来了,
谢谢,又是版主的功劳
这是我的代码.如果有兴趣供大家参考
create proc Insert_BookStateInfo
@ISDN varchar(10),
@TotalStock integer
as
begin tran
declare @State varchar(10),@BookID varchar(14),@i integer,@tempBookID varchar(3)
set @i=0
set @State='归还'
while (@TotalStock>@i)
begin
set @tempBookID=(convert(varchar(3),(select max(convert(int,right(BookID,len(BookID)-10)))+1
from BookStateInfo
where ISDN=@ISDN )) )
while (len(@tempBookID)<3)
set @tempBookID='0'+@tempBookID
set @BookID=@ISDN+'-'+@tempBookID
insert into BookStateInfo(ISDN,BookID,State)
values(@ISDN,@BookID,@State)
set @i=@i+1
end
update BookInfo
set TotalStock=isnull(TotalStock,0)+@TotalStock
from BookInfo as a ,BookStateInfo as b
where a.ISDN=b.ISDN and b.ISDN=@ISDN
update BookInfo
set BookStock=isnull(BookStock,0)+@TotalStock
from BookInfo as a ,BookStateInfo as b
where a.ISDN=b.ISDN and b.ISDN=@ISDN
commit

2006-04-14 15:15
missking
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2006-4-8
得分:0 

我想想不对,我就又把它改了.
现在想想书号ISDN也可以让它自动产生,如果让用户输入的话很容易出错


2006-04-14 15:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57257-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.186074 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved