这个存储过程有什么问题

时间:2012-05-26 11:30:42

标签: sql sql-server-2005

注意:执行此存储过程时没有错误,但它不会返回结果作为I方面。

catmaster包含某些项目,例如:

1. Apple
2. Banana
3. Graphs

现在看看这个存储过程

ALTER proc [dbo].[StockValueUpdatedd]
(
 @companyID int,
 @date varchar(15),
 @value decimal(12,2),
 @openbal decimal(12,2),
 @newgoods varchar(100),
 @oldgoods varchar(100)

)
as
set nocount off

declare @ngoodss varchar(100)
declare @ogoodss varchar(100)

select @ngoodss=catname from catmaster where companyID=@companyID and catname=@newgoods
select @ogoodss=catname from catmaster where companyID=@companyID and catname=@oldgoods

if @ogoodss <>  @ngoodss
begin

if not exists
(
    select catname from catmaster where companyID=@companyID and    catname=@newgoods
)
begin
        update catmaster set openbal=@openbal,
        openbalvalue=@value,
        catname=@newgoods
        where companyID=@companyID
        and catname=@oldgoods


end
else    
    begin
        raiserror('Check Duplicate',16,10)
    end
end

如果我尝试将存在项更新为另一个存在iItems然后按照上面的存储过程它会抛出错误。没关系但是如果我试图将存在的项目修改为新项目,那么查询上面的存储过程应该没有效果。

例如:如果我尝试修改AppleMango等现有项目,那么它应该保持Apple而不是Mango - 为什么?。

这个存储过程有什么错误?

0 个答案:

没有答案