猿问

怎么将存储过程执行的值赋给变量 set @pass= exec Pass '1','1' 这样不行 说'exec'附近有语法错误

begin
declare @i int
declare @pass12 varchar(20)
declare @id varchar
exec @pass12=pass '1','1'
select @pass12 as 'a'
end

 

pass是存储过程

这样可以显示exec @pass12=pass '1','1' 的值,但是select @pass12 as 'a'显示的是0

大话西游666
浏览 432回答 2
2回答

梵蒂冈之花

执行存储过程之后 返回的是一个结果集,所以你是不能用一个变量去接收的。 在你的这个里面,只是因为返回的结果集刚好只有一行一列,所以让你误以为返回的是一个字段,就可以直接用变量接收了。 至于为什么这样写之后 显示的是0,我也没搞明白。

Helenr

这样肯定是有语法错误啊, 你把'1'这种特殊的字符串别这么输入, 用参数的形式传。
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答