日期:2014-05-19  浏览次数:20467 次

帮帮忙
create   function   [dbo].[joinString](@str   varchar(300),@tablename   varchar(100))
returns   varchar(300)
as
begin
declare   @sql   varchar(1000)
declare   @temp   varchar(300)
set   @temp= ' '
set   @sql= 'select   '+@temp+ '= '+@temp+ '+ProductName   from   '+@tablename+ '   where   dbo.StringReplace(CountUrl)= '+@str+ ' '  
exec(@sql)  
return   @temp
end
这个不行

create   function   [dbo].[joinString](@str   varchar(300),@tablename   varchar(100))
returns   varchar(300)
as
begin

declare   @temp   varchar(300)
set   @temp= ' '
select   @temp=@temp+ProductName   from   @tablename   where   dbo.StringReplace(CountUrl)=@str
return   @temp
end

为什么函数里面不能这样使用,@tablename这么变量怎么不能使用了~

------解决方案--------------------
函数里面不能执行动态的SQL
换成存储过程把~


------解决方案--------------------
主要是function里不能用exec