如何定义存储过程中的返回值类型
比如我现在写个存储过程
alter PROCEDURE Services
as
declare @count1 int
declare @count2 int
declare @name1 varchar(255)
declare @name2 varchar(255)
set @name1= 'a '
set @name2= 'c '
begin tran
select @count1=count(*) from accounts where [name]=@name1
select @count2=count(*) from accounts where [name]=@name2
if @count1 > 0 and @count2 > 0
begin
update accounts set [money]=[money]+500 where [name]=@name1
update accounts set [money]=[money]-500 where [name]=@name2
end
else
begin
return '失败 '
end
commit tran
我返回的是一个字符串,但是执行后却说
'服务器: 消息 245,级别 16,状态 1,过程 Services,行 19 '
'将 varchar 值 '失败 ' 转换为数据类型为 int 的列时发生语法错误。 '
请问如何解决,高手指教下.
------解决方案--------------------MS SQL 的 SP RETURN 只能 RETURN 整型类型!!!
其他类型,可以使用 输出参数
-- DEMO
alter PROCEDURE Services
@Result varchar(100) output
as
/*
...
*/
SELECT @Result = '失败 '
-- ...