【问题标题】:SQL Server : how to get specific column from stored procedure without modifying itSQL Server:如何从存储过程中获取特定列而不修改它
【发布时间】:2016-05-12 05:19:40
【问题描述】:

这里是示例存储过程

DECLARE @ReturnTable TABLE (DateTime DATETIME,      
                            WrongUSSD VARCHAR(30),
                            AllMSISDN INT,      
                            UniqueMSISDN INT,   
                            SubscriptionActivated INT)

SELECT * 
FROM @ReturnTable

不允许修改存储过程,我只需要通过select语句从这个过程中形成特定的列。

我试过了

select WrongUSSD 
FROM openrowset('MSDASQL', 'Driver={SQL SERVER}; Server=server_name;UID=user; PWD=pass;Trusted_Connection=yes;', 'EXEC [DatabaseName].[dbo].[ProcedureName] "2016-01-01","2016-04-01"') as a

如果存储过程中存在链接服务器,则此方法不起作用

还有其他方法吗??请帮忙

【问题讨论】:

  • 为什么需要它只返回一列?

标签: sql sql-server stored-procedures reporting-services


【解决方案1】:

使用临时表:

INSERT INTO #TempTable
EXEC [dbo].[ProcedureName]

SELECT WrongUSSD
FROM #TempTable

【讨论】:

  • 感谢您的回复,是的,它可以工作,但问题是我有很多存储过程,我必须从中获取列,必须创建很多临时表(几乎 50-60 个临时表)。还有其他方法吗??
  • 我也有临时表嵌套插入的问题,存储过程中已经有很多插入查询,所以嵌套插入造成了问题
猜你喜欢
  • 2014-04-21
  • 1970-01-01
  • 2021-12-27
  • 2021-09-18
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
相关资源
最近更新 更多