Упорядочить по табличной функции - PullRequest
0 голосов
/ 27 августа 2010

почему ошибка?

CREATE FUNCTION [dbo].[seth] (@IdUrl BIGINT)
RETURNS TABLE
AS
RETURN(SELECT * FROM dbo.NetGraph ORDER BY IdUrl)

ошибка

Msg 1033, Level 15, State 1, Procedure seth, Line 4
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.

или

как упорядочить по полю в таблице данных C #?

Ответы [ 2 ]

4 голосов
/ 27 августа 2010

вы можете сделать "SELECT * FROM dbo.seth (@your_value) ORDER BY IdUrl"

2 голосов
/ 27 августа 2010

Предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросах и выражениях общих таблиц, если также не указано TOP или FOR XML

Это потому, что всеЭти объекты предназначены для возврата набора строк, который может быть далее объединен, опрошен или упорядочен.В предыдущих версиях SQL Server (например, 2000) это позволяло вам помещать «ORDER BY» в некоторые из них (например, VIEW), особенно если используется уклон «TOP 100 PERCENT».Однако 2005 год стал умнее, поэтому даже если в определении представления указан TOP 100 PERCENT, он будет игнорировать порядок - поскольку он знает, что TOP 100 PERCENT - это все строки, ему не нужно выполнять сортировку, чтобы определить, какойвозвращаемые строки.

По сути, ЗАКАЗ для чисто презентационных целей предназначен только для самого внешнего уровня.

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