存储过程,如何选择成多个变量?

Posted

技术标签:

【中文标题】存储过程,如何选择成多个变量?【英文标题】:Stored Proc, how to select into multiple variables? 【发布时间】:2011-03-01 16:06:30 【问题描述】:

我的存储过程的行为不符合我的预期。我期望从 1 个 select 语句中填充多个变量。

像这样:

Declare @Phone nvarchar(30); 
Declare @Fax nvarchar(30); 

select @Phone = phone , @Fax = fax from customer where customerID = 1;

但是,在此选择之后,变量始终为空白。我确信结果集是标量的,并且数据确实存在。

明显的错误在哪里,谢谢!

【问题讨论】:

您确定select * from customer where customerID = 1 会返回任何值吗? 你如何检查变量的值? 【参考方案1】:

我认为这应该可行(我相信有人会纠正我的!)。

您绝对确定数据存在?

如果你添加一个

print @Phone
print @Fax

紧接着,它们都是空白的?

【讨论】:

我会再次检查,以确保 200% 确定。 你说得对,数据才是问题所在。显然,我在上面发布的示例是对真实事物的简化,但我对 where 子句有疑问。再次感谢!

以上是关于存储过程,如何选择成多个变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何从返回多个表的存储过程中选择特定表?

如何使用sqlplus在shell中存储存储过程返回的多个输出列

如何给sqlserver 存储过程中的变量赋值?

大家帮忙看看Oracle存储过程怎样给变量赋值

mysql-存储过程

Oracle 如何给存储过程赋值