我是否可以将存储过程调用到CTE中。我有一个登录我们的报告数据库,只有RO。我有权访问我们的UAT,但想查询实时数据。
那么我可以在CTE中使用存储过程吗?
with clientOwes as (
exec des_Batch_GetApplicationClientOwesList
)
select a.des_applicationnumber
from des_heapplicationset a
where a.des_heapplicationid in (select applicationid from clientowes)
结果是:消息156,级别15,状态1,行3 关键字'exec'附近的语法不正确。
谢谢, 乔
答案 0 :(得分:5)
通过评论中的对话改编的答案:
您可以使用存储过程填充表变量,Read Only访问允许您创建。您也不需要使用OpenRowSet来填充它。只是做:
INSERT INTO @MyTableVariable
EXEC MyStoredProcedure
我自己在很多地方都这样做,我需要将Stored Proc结果视为一个表格,我可以与其他表格一起加入或联合。