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

sqlserver自定义函数调用报错
写了个简单自定义函数如下,作用是根据表名和查询条件从数据库某张表的某个字段中取出数据并返回,但调用该函数时总是报错:必须声明变量   '@tb '。
请教一下是哪里错了。

drop   function   get_result;
go
create   function   get_result(@tb   varchar(100),@condition   varchar(100))
returns   varchar(4000)
begin
declare   @result   varchar(4000)
select   @result=cp_id   from   @tb   where   @condition
return   (@result)
end
go

--调用
select   *   from   get_result( 'tb_ua_admin ', 'admin_id=1 ')


------解决方案--------------------
这样的问题已经有人问过多遍了,动态SQL需要使用EXEC,而至少在SQLSERVER2000中是无法用函数来解决的,只能使用存储过程.