相关疑难解决方法(0)

从存储过程的结果集中选择列

我有一个存储过程返回80列和300行.我想写一个选择,获得其中2列.就像是

SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Run Code Online (Sandbox Code Playgroud)

当我使用上面的语法时,我得到错误:

"无效的列名称".

我知道最简单的解决方案是更改存储过程,但我没有写它,我无法改变它.

有什么办法可以做我想要的吗?

  • 我可以创建一个临时表来放置结果,但因为有80列所以我需要制作一个80列的临时表来获得2列.我想避免追踪返回的所有列.

  • WITH SprocResults AS ....按照马克的建议尝试使用,但我遇到了2个错误

    关键字"EXEC"附近的语法不正确.
    ')'附近的语法不正确.

  • 我尝试声明一个表变量,我得到以下错误

    插入错误:列名或提供的值数与表定义不匹配

  • 如果我尝试
    SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
    我得到错误:

    关键字'exec'附近的语法不正确.

t-sql sql-server select stored-procedures

426
推荐指数
12
解决办法
62万
查看次数

标签 统计

select ×1

sql-server ×1

stored-procedures ×1

t-sql ×1