日期:2014-05-17  浏览次数:20434 次

存储过程的基础问题,大家多来帮我看看
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] 运行。

------解决方案--------------------
UPDATE TranTest SET AccountBalance=AccountBalance-100 WHERE AccountBalance='A'

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



AccountBalance 是什么类型? INT 还是 VARCHAR??
------解决方案--------------------
AccountBalance字段的数据类型是tinyint吧?

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