代码如下:
create procedure product
@name varchar(20),
@code varchar(20),
@num int,
@Error
as
declare @pnum int,
@snum int
select @pnum=sum(pnum) from productone//表一
select @snum=sum(snum) from producttwo//表二
if @pnum>0
begin
if (@pnum-@snum>0) and (@pnum-@snum-@num>0)
begin
insert into producttwo(name,code,num)
values(@name,@code,@num)
end
select @Error=@@Error
return @Error
end
问题是:
不想表中插入值,就是不执行insert 语句,这是怎么回事?
高手帮忙!!
create procedure product
@name varchar(20),
@code varchar(20),
@num int,
@Error
as
declare @pnum int,
@snum int
select @pnum=sum(pnum) from productone//表一
select @snum=sum(snum) from producttwo//表二
if @pnum>0
begin
if (@pnum-@snum>0) and (@pnum-@snum-@num>0)
begin
insert into producttwo(name,code,num)
values(@name,@code,@num)
end
select @Error=@@Error
return @Error
end
问题是:
不想表中插入值,就是不执行insert 语句,这是怎么回事?
高手帮忙!!
解决方案 »
- 谁帮忙检查下这段简单的代码..?
- 如何判断文件的总量
- 关于Tstringgrid控件(如何知道哪一行被选中)
- 给delphi程序员
- 如何把Edit框中的竖线脱字符改成横线呢?
- 用ServerSocket和ClinetSocket怎样实现QQ那样,程序运行后自动接收信息?
- 救命!!按住shift键,然后在DBGrid中选中一条记录由该记录向上划动或向下动,则选中多条(返白显示)
- delphi mssagedlg
- 异常事件怎么没有被捕获?处理
- 关于CreateThread多线程的内存管理
- Delphi中如何使用PowerPoint
- 用listview显示数据库的内容,在增加和修改一个记录后,怎么能马上在listview中显示出来
if (@pnum-@snum>0) and (@pnum-@snum-@num>0)
应该是这个没满足吧
name :=zhang
code:=ss-ss
pnum:=14
表二呢,是空的
测试值如下;
name ;=zhang
code;=ss-ss
num:=3
查看表二时,仍然是空的
表二中执行的结果集为空时,用@Num值运算时有错误的,我随便用作了一个存储过程, 证明了这一点
select @snum=sum(snum) from producttwo//表二做如下修改
select @pnum=ISNULL(sum(pnum),0) from productone//表一
select @snum=ISNULL(sum(snum),0) from producttwo//表二这样应该可以的