mssql的函数中如何在执行动态的查询语句

ALTERFUNCTION[dbo].[fun_seq](@seqNameVARCHAR(50))--作者:***版本:1.0编写时间:2013-8-13修改人:修改日期... ALTER FUNCTION [dbo].[fun_seq] ( @seqName VARCHAR(50) )
--作者:*** 版本:1.0 编写时间:2013-8-13 修改人: 修改日期:
--修改内容:
--功能描述:传入一序列名,返回
RETURNS BIGINT
AS
BEGIN
DECLARE @sql NVARCHAR(200) ,
@reSult BIGINT
--EXEC [getSeq] @seqName;--调用存储过程不行
SET @sql = 'select top 1 @reSult=' + @seqName
+ ' from seq order by id';
EXEC sp_executesql @sql, @reSult OUTPUT
-- select top 1 @reSult=seq from seq order by id --如果写成这样,就可以,但动态的查询语句用了exec就是不行
RETURN @reSult;
END
--测试调用:
/*
select dbo.fun_seq 'seq'--调用也不行
*/
展开
 我来答
frogley
2013-08-13 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1083万
展开全部
mssql函数内部只能使用简单的sql语句,逻辑控制语句,复杂一点的存储过程是不能调用的,也不能使用execute sp_executesql 或者execute。

换成存储过程吧。
更多追问追答
追问
有没有如何在函数中执行存储过程的方法
追答
这个真没有...
为啥非要用函数呢,你要干的这个事,明显应该用存储过程啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式