日期:2014-05-18  浏览次数:20434 次

一个奇怪的问题--未能找到存储过程
create   proc   Ex_Select
(
@au_lname   varchar(200),
@au_fname   varchar(200),
@au_num   int   output
)
as
begin
select   @au_num=count(*)   from   authors
declare   @sql   varchar(200)
set   @sql= 'select   '+@au_lname+ ', '+@au_fname+ '   from   authors '
exec   @sql
end
上面是我的存储过程。执行后,我在查询分析器中执行以下语句
exec   Ex_Select   'au_lname ', 'au_fname ',0
但是报错。错误信息:
服务器:   消息   2812,级别   16,状态   62,行   12
未能找到存储过程   'select   au_lname,au_fname   from   authors '。
为啥。给分


------解决方案--------------------
exec @sql====> 改为 :exec (@sql)
------解决方案--------------------
ALTER proc Ex_Select
(
@au_lname varchar(200),
@au_fname varchar(200),
@au_num int output
)
as
begin
select @au_num=count(*) from authors
declare @sql varchar(200)
set @sql= 'select '+@au_lname+ ', '+@au_fname+ ' from authors '
exec(@sql)
end