首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

帮帮忙解决方案

2012-01-19 
帮帮忙createfunction[dbo].[joinString](@strvarchar(300),@tablenamevarchar(100))returnsvarchar(300)a

帮帮忙
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

热点排行