一个有关SQL Server数据库存储过程的问题,大家帮帮忙,回答正确加200分!

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:17:15
问题是这样的,打开SQL Server,在查询分析器内创建如下存储过程:
create procedure aaa @param varchar(50) output
as
begin
select @param='猪八戒。'
end

然后,在查询分析器内执行如下命令:
declare @param1 varchar(50)
exec aaa @param1
print '你是'+@param1

问题是,为什么执行结果没能出现预料的打印“你是猪八戒。”好象这里@param并没有获得赋值。这是为什么?请达人给出解决办法。

问题被采纳者将获额外200积分奖励。谢谢!

create procedure aaa @param varchar(50) output
as
begin
set @param='猪八戒。'
end

--然后,在查询分析器内执行如下命令:
declare @param1 varchar(50)
exec aaa @param1 OUTPUT
print '你是'+@param1

把select 改成set,在exec 后要添加 OUTPUT

declare @param1 varchar(50)
exec aaa @param1 output
print '你是'+@param1

用set试试,select在某些版本中,不能用于赋值