0

內執行我已存儲過程和SQL Server 2016中創建用戶定義的表值函數,我能夠編譯兩個程序和函數成功。只有函數和某些擴展存儲過程可以從功能

Procedure Name: getAgentLogActivity
Function Name: sp_agent_log_activity

功能被調用過程getAgentLogActivity以及Exec的sp_executesql的。所以,當我嘗試運行下面的功能選擇查詢時,我得到一個錯誤。

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

爲了讓上的代碼背景,它是從思科UCCX數據庫是Informix中的代碼。我已將其轉換爲SQL Server。

請讓我知道是否有任何周圍工作的錯誤。

+0

沒有人會去從GitHub下載代碼。但是你不能在功能上做你想做的事情。你可以在存儲過程中完成,但函數不允許調用過程並執行動態SQL。 –

+0

@SeanLange說了些什麼。此外,看一看已經問(回答)問題:http://stackoverflow.com/questions/6344880/execute-stored-procedure-from-a-function –

+0

好吧,我不要求任何人都可以下載代碼。它只是它的一個非常大的程序和函數100行代碼,所以我把它保留在那裏。 –

回答

1

最簡單的解決方法是把你的表值函數到一個存儲過程。存儲過程沒有限制無法執行另一個存儲過程。