我在具有许多存储过程的MSSQL 2005数据库系统上运行。其中一个存储过程是“报告”,我想在不编辑存储过程的情况下对其进行排序。有没有办法动态地对存储过程的结果进行排序:如下所示:
exec spReport
order by ColumnT
答案 0 :(得分:2)
您可以插入临时表。然后,从表中排序。
e.g。
INSERT INTO #table
EXEC spReport
SELECT *
FROM #table
ORDER BY ColumnT
答案 1 :(得分:1)
不,你不能这样做。如果您知道结果集的结构,则可以先构建一个#tmp表,插入#tmp exec spReport,然后从#tmp表中选择order by子句。您甚至可以使用OPENQUERY或OPENROWSET一起破解某些东西,但我建议您编辑spReport以始终使用您想要的顺序或者获取参数并根据参数定义顺序。
答案 2 :(得分:1)
您应该使用结果填充临时表,然后对其进行排序。以下是显示如何执行第一部分的链接: