请高手指点 try select @ret as declare @ret int exec @ret=tttt 50 select @ret as '返回值'' 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把exec @ret=tttt+50改为exec @ret=tttt-50为什么又可以? 1. 首先,要在declare @ret int 前加一行, go 区分这个两个sql.2. 在存储过程中你定义了一个输入参数, 就是是你什么exec @ret=tttt+50改为exec @ret=tttt-50对的原因了, 他把-50 当作一个参数输入的存储过程中了. +则分不清时正号还是加号(连接),所以就会出错。而-的意义只有一个。可以这样:go declare @ret int exec @ret=tttt 1 select '返回值'=@ret + 50 在sql server:+50只有一种意义,就是前面的表达式加上50-50有两种意义,一是前面的表达式减去50,一是表示负50,就是一个数exec @ret=tttt-50理解为后者所以能执行,而exec @ret=tttt+50没有其他理解所以出错。 sorry, I was wrong, Yang_(扬帆破浪) is correct, thanks for the correction select '返回值'=@ret改为select "返回值"=@ret 或select [返回值]=@ret 或select @ret as 返回值试试。 正则查找替换问题 vs2005中Treeview数据表绑定问题:datatable.select()出错 帮忙补全计算器代码.. 为什么用 静态方法去替代 类的 构造函数 有关MSN的问题 ado.net与XML问题讨论 C#把录音翻译成文字 请问这两者有何不同? 急!在线等。如何获取客户端IP地址和系统时间? ERROR: Microsoft Development Environment 怎样才能把焦点设到另一个窗体上 ScrollBar没有MouseDown事件?
go
declare @ret int
exec @ret=tttt 1
select '返回值'=@ret + 50
+50只有一种意义,就是前面的表达式加上50
-50有两种意义,一是前面的表达式减去50,一是表示负50,就是一个数
exec @ret=tttt-50理解为后者所以能执行,而exec @ret=tttt+50没有其他理解所以出错。
select "返回值"=@ret 或
select [返回值]=@ret 或
select @ret as 返回值
试试。