SQLServer 存储过程 return数据类型错了 return 只能返回 int 如果你要返回可以用output或者 select 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、varchar不加长度默认为varchar(1),很有可能导致数据截断,强烈建议加上,毕竟变长类型,空间浪费情况比较少。2、试试这个:ALTER proc p_7@sno varchar(20) --参数asdeclare @sname varchar(20); --局部变量,必须使用declare,可以不加长度,declare @name varcharselect @sname=sname from student where sno=@sno;return @sname; --返回值go3、检查一下sno和sname是否有数值型 额,1楼说的对,忘了return返回的是int类型 已尝试,return返回int型数据没问题。谢谢! 你这样的情况应该是定义输出参数,而非靠存储过程自身执行的返回状态值来输出。create proc usp_test@sno varchar(20)@sname varchar(20) outasselect @sname=name from student where no=@sno 已尝试,return返回int型数据没问题。谢谢!修改了一下,注意在存储过程中是不能返回值的,也就是不能return xxx:CREATE TABLE student([sno] [varchar](10) primary key NOT NULL,[sname] [varchar](20) NULL,[sage] [int] NULL,[ssex] [varchar](5) NULL,)goinsert into studentselect 's002','xxxx',20,'man'gocreate proc p_7@sno varchar(20), --参数@sname varchar(20) out --通过输出参数来返回值as --局部变量,必须使用declare,可以不加长度,declare @name varcharselect @sname=sname from student where sno=@sno;--在存储过程中不能返回值--return @sname; --返回值godeclare @sname varchar(20)exec p_7 's002',@sname outselect @sname as sname/*snamexxxx*/ sql按月份区间查询记录 链接服务器 SQL求一行中值不为零的个数 关于周岁计算的问题! 在表中的varchar型有没有办法转换成datetime,我就是要把整个字段的类型转换过来。 关于一条记录时间的问题? 下面红色name是什么意思啊 一个非常简单的问题,多年没做忘了? 请教如何在SQLServer中插入Word文件 如何让两台sql server服务器实现数据同步(可以不是实时的,是定时同步)? 统计父类下所有子类的的数据和如何统计 varchar value to varchar cannot be performed的问题是咋回事
2、试试这个:
ALTER proc p_7
@sno varchar(20) --参数
as
declare @sname varchar(20); --局部变量,必须使用declare,可以不加长度,declare @name varchar
select @sname=sname from student where sno=@sno;
return @sname; --返回值
go
3、检查一下sno和sname是否有数值型
已尝试,return返回int型数据没问题。谢谢!
@sno varchar(20)
@sname varchar(20) out
as
select @sname=name from student where no=@sno
已尝试,return返回int型数据没问题。谢谢!修改了一下,注意在存储过程中是不能返回值的,也就是不能return xxx:CREATE TABLE student(
[sno] [varchar](10) primary key NOT NULL,
[sname] [varchar](20) NULL,
[sage] [int] NULL,
[ssex] [varchar](5) NULL,
)
go
insert into student
select 's002','xxxx',20,'man'
go
create proc p_7
@sno varchar(20), --参数
@sname varchar(20) out --通过输出参数来返回值
as
--局部变量,必须使用declare,可以不加长度,declare @name varchar
select @sname=sname from student where sno=@sno;--在存储过程中不能返回值
--return @sname; --返回值
go
declare @sname varchar(20)
exec p_7 's002',@sname outselect @sname as sname
/*
sname
xxxx
*/