powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TOP N, N - параметр. Как?
5 сообщений из 5, страница 1 из 1
TOP N, N - параметр. Как?
    #32021987
EugeneK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я хочу отбирать в ХП отбирать TOP N записей, причем N передается как параметр, то придется SELECT генерить в строковую переменную? Или я торможу?
...
Рейтинг: 0 / 0
TOP N, N - параметр. Как?
    #32021990
Replicant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея (dynamic SQL) надеюсь понятна:

-- begin tsql

declare @sqlstr nvarchar(100), -- должно вмещать вашу sql строку
@n smallint -- параметр для TOP n

-- это например ваш SELECT
set @sqlstr = N'SELECT TOP' + cast(n as nvarchar(5)) + ' FROM yourtab ORDER BY 1'

exec(@sqlstr)

-- end tsql

Удачи
...
Рейтинг: 0 / 0
TOP N, N - параметр. Как?
    #32021995
declare @rows int
set @rows=17
SET ROWCOUNT @rows
SELECT ....
...
Рейтинг: 0 / 0
TOP N, N - параметр. Как?
    #32021997
EugeneK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, особенно "Глеб Уфимцев", подозревал, что есть такое.

2Replicant: Именно таким способом я и не хотел делать, насколько я понимаю, работать будет медленнее, так как не будет предварительной компиляции.
...
Рейтинг: 0 / 0
TOP N, N - параметр. Как?
    #32022002
На самом деле построение плана занимает совершенно незначительное время по сравнению со временем выполнения запроса. Даже более того, динамический запрос в ряде случаев бывает в несколько раз быстрее. Об этом я сейчас распространяться не буду, просто имей в виду, что такой метод в некоторых ситуациях может существенно ускорить.
У динамического запроса недостаток в другом - необходимо давать права на базовые объекты.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / TOP N, N - параметр. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]