请教:SQL2000自定义函数不能执行存储过程和使用Exec语句.(100分)

  • 主题发起人 主题发起人 net_zhjk
  • 开始时间 开始时间
N

net_zhjk

Unregistered / Unconfirmed
GUEST, unregistred user!
如标题.想知道为什么..或怎么解决..谢谢各位大哥!<br>create function FunTest(@value varchar(255))<br>returns varchar(255)<br>begin<br> &nbsp;exec('sql语句') //提示:invalid use of 'exec' within a function<br> &nbsp;由于这个函数用于一个查询..查询条件有很多种组合..所以在传入之前我都传入给 &nbsp;@value 了,但在函数里不能使用exec语句..请大哥们救命.<br>另<br> &nbsp;exec 存储过程名 //也行不通<br>end
 
create function FunTest(@value varchar(255))<br>returns varchar(255)<br>begin<br> &nbsp; exec 存储过程名<br> &nbsp; return 'haha'<br>end
 
如果函数不成完成任务,就用存储过程,也是可以返回参数的。
 
可能涉及到返回值类型的问题
 
sql server2000的帮助里已经说明了,自定义函数不能使用exec语句
 
多语句函数的主体中允许使用以下语句。未在下面的列表中列出的语句不能用在函数主体中。 <br><br>赋值语句。<br><br><br>控制流语句。<br><br><br>DECLARE 语句,该语句定义函数局部的数据变量和游标。<br><br><br>SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。<br><br><br>游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。<br><br><br>INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。<br><br><br>EXECUTE 语句调用扩展存储过程。 (注: EXECUTE = EXEC)
 
多谢楼上各们兄弟...我最后是用临时表暂时应付下.<br>另,请问shangshang,兄.你那个翻译是怎么译的...如果有中文版,能给我一份嘛.谢了.我英文不好
 
多人接受答案了。
 
你那个翻译是怎么译的??不是翻译,是sqlserver2000中文版自带的T-sql帮助。原文复制而来
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
501
import
I
后退
顶部