当前位置: 代码迷 >> Sql Server >> 数据转换的异常
  详细解决方案

数据转换的异常

热度:14   发布时间:2016-04-24 10:36:15.0
数据转换的错误
小弟刚刚开始学习数据库,看了书上的例题想敲一些代码,可是出现了字符类型转换的错误,不知道怎么处理,平时也遇到过这样的问题,但是不知怎么改来改去就好了,可还是不知道原理,麻烦各位前辈指导一下!
谢谢

create proc shiyan1
@a int,
@c int output
as
declare @b nchar(10)
begin 
if(@a>10)
begin
set @b='好好'
set @c=1
return @b
end
else
begin
set @b='好不好'
set @c=0
return @b
end
end

declare @haha nchar(10)
declare @shu int
exec @haha=shiyan1 11,@shu output
print(@haha)
print(@shu)

------解决方案--------------------
第一个错误是,在这段代码中:
if(@a>10)     
begin        
set @b='好好'        
set @c=1         
return @b     
end
返回@b,但是你程序定义的是返回int型,而你的@b是字符型,所以出错。
你改成返回@c,或者前面output返回nchar(10)就好了
------解决方案--------------------
存储过程中的return 只能返回整形值,
你的@b 要只能通过output传出。
------解决方案--------------------
declare @b int 试试
  相关解决方案