Можно ли отсортировать результаты хранимой процедуры с помощью T-SQL? - PullRequest
4 голосов
/ 18 июля 2011

Я работаю в системе баз данных MSSQL 2005, в которой есть много хранимых процедур. Одна из хранимых процедур - это «отчет», и я хочу отсортировать его без редактирования хранимой процедуры. Есть ли способ отсортировать результаты хранимой процедуры на лету: как-то так:

exec spReport 
order by ColumnT

Ответы [ 3 ]

2 голосов
/ 18 июля 2011

Вы можете вставить во временную таблицу.Затем сортируйте из таблицы.

например

INSERT INTO #table
EXEC spReport

SELECT *
FROM  #table
ORDER BY ColumnT
1 голос
/ 18 июля 2011

Вы должны заполнить временную таблицу с результатом и затем отсортировать его.Вот ссылка, показывающая, как выполнить первую часть:

Как выбрать * INTO временную таблицу из хранимой процедуры

1 голос
/ 18 июля 2011

Нет, вы не можете этого сделать. Если вы знаете структуру набора результатов, вы можете сначала создать таблицу #tmp, вставить #tmp exec spReport, а затем выбрать из таблицы #tmp предложение order by. Возможно, вам даже удастся взломать что-нибудь вместе, используя OPENQUERY или OPENROWSET, но я бы порекомендовал редактировать spReport либо для того, чтобы всегда использовать нужный вам порядок, либо для получения параметра и определения порядка на основе параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...