只能从函数内执行函数和一些扩展存储过程

Only functions and some extended stored procedures can be executed from within a function

我在 SQL Server 2016 中创建了存储过程和用户​​定义的 Table 值函数。我能够成功编译过程和函数。

Procedure Name: getAgentLogActivity
Function Name: sp_agent_log_activity

函数正在调用过程 getAgentLogActivity 以及 Exec sp_executesql。因此,当我尝试 运行 下面 select 查询函数时,我得到一个错误。

Error: Only functions and some extended stored procedures can be executed from within a function.

SELECT * FROM [dbo].[sp_agent_log_activity] 
('2017-02-01 00:00:00','2017-02-01 23:59:59',0,'','','','')

存储过程和函数的完整代码可以在下面的位置找到。

Stored Procedure and User Define Table Valued Function

为了提供代码背景,它是来自 Informix 中的 Cisco UCCX 数据库的代码。我已将其转换为 SQL 服务器。

如果有解决该错误的方法,请告诉我。

最简单的解决方法是将 Table 值函数转换为存储过程。存储过程没有不能执行另一个存储过程的限制。