【问题标题】:i want to decrease the quantity field and decrease its number我想减少数量字段并减少其数量
【发布时间】:2015-05-23 08:55:15
【问题描述】:
CREATE PROCEDURE dbo.IssueBook
    (
    @bookid nvarchar(50),
    @ano nvarchar(50),
    @mid int,
    @librarian varchar(10),
    @quantity int
    )
AS
    declare @cnt int
    declare @msg varchar(100)
    if  not exists( select * from books where bookid = @bookid and quantity = @quantity) 
       begin
         raiserror('Book is not available',16,1);      
         return;
       end;


    select @cnt = count(bookid) from issues where mid = @mid;
    if ( @cnt >= 2 )   
        begin
         raiserror('Maximum Limit Has Been Reached For Member!',16,1);
         return;
       end;

    begin tran
    begin try 
      update books set quantity =@quantity-1 where bookid= @bookid;
      insert into issues values (@bookid, @mid, getdate(), @librarian, @ano);
      commit tran
    end try
    begin catch
         rollback tran
         /* select  @msg = error_message() */
         raiserror( 'Unknown Error', 16,1);
    end catch

我想更改 sql 表中 quantity 字段的值,我该怎么做,请帮助我,我尝试了很多东西,但它们不起作用,我将非常感谢你...

【问题讨论】:

  • 看起来@quantity 根本不应该是一个参数,你可以在检查可用性时从一开始的表中获取它——你应该只更新...数量 = 数量 -1 没有变量。

标签: sql sql-server stored-procedures


【解决方案1】:

我认为问题出在这部分:set quantity =@quantity-1。如果我理解正确,它应该是

set quantity = quantity-1 -- Decreease the book quantity by 1

set quantity = quantity - @quantity -- Decreease the book quantity by @quantity 

【讨论】:

  • 嗨试试这个,但它不起作用它给我错误“方法或操作未实现。”
  • 这似乎不是 sql 异常。请编辑您的问题以包含代码和异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2021-09-19
  • 1970-01-01
相关资源
最近更新 更多