我写了一非常简单的存储过程,如下
create procedure czpro(@id int)
as
begin
declare @var varchar(10)
select @var=cast(id as varchar(6))+name from cz where id=@id
return @var
end------------------------------
id为int,name 为varchar
表结构
id name
1 cz1
2 cz2
3 cz3
. .
. .-----------------------
我在调用的时候
exec czpro '8'
----------------
返回结果竟然是
服务器: 消息245,级别16,状态1,过程czpro 行9
将varchar 值 '8cz8 '转换为数据类型为int 的列时发生语法错误
有人知道这是为什么吗?
create procedure czpro(@id int)
as
begin
declare @var varchar(10)
select @var=cast(id as varchar(6))+name from cz where id=@id
return @var
end------------------------------
id为int,name 为varchar
表结构
id name
1 cz1
2 cz2
3 cz3
. .
. .-----------------------
我在调用的时候
exec czpro '8'
----------------
返回结果竟然是
服务器: 消息245,级别16,状态1,过程czpro 行9
将varchar 值 '8cz8 '转换为数据类型为int 的列时发生语法错误
有人知道这是为什么吗?
return @varname 为varchar,所以@var 结果的类型为 varchar而存储过程的返回值是不能返回varchar类型的,只会返回int类型.
存储过程中默认返回值只能是int型