ALTER PROCEDURE dbo.transfer 
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
/* SET NOCOUNT ON */ 
UPDATE TranTest SET AccountBalance=AccountBalance-100 WHERE AccountBalance='A'

UPDATE TranTest SET AccountBalance=AccountBalance+100 WHERE AccountBalance='B'

RETURN问题:当我执行的时候出现下面这个问题,咋解决啊?A是AccountBalance列中的名字,杂还要转换?运行[dbo].[transfer].在将 varchar 值 'A' 转换成数据类型 tinyint 时失败。
没有行受影响。
(返回 0 行)
@RETURN_VALUE = 
完成 [dbo].[transfer] 运行。

解决方案 »

  1.   

    UPDATE TranTest SET AccountBalance=AccountBalance-100 WHERE AccountBalance='A' UPDATE TranTest SET AccountBalance=AccountBalance+100 WHERE AccountBalance='B'AccountBalance 是什么类型? INT 还是 VARCHAR??
      

  2.   

    AccountBalance字段的数据类型是tinyint吧?"where AccountBalance='A'"有语法问题,等式两边是不同数据类型,数值型跟字符型无法做比较..
      

  3.   

    (1)关于存储过程返回值问题(output,ruturn)
      output存储过程:
       
    alter proc usp_update
    @count int output
    as
    set @count=(select count(*) from stu)
     return存储过程:
    alter proc usp_update
    as
    declare @count int
    set @count=(select count(*) from stu)
    return @count基本用法,希望对你有帮助?