SQL: Как я использую параметр для TOP как в ИЗБРАННОМ TOP @amount? [дубликат]

Этот вопрос уже имеет ответ здесь:

Используя vs2008 конструктор запросов, я пытаюсь сделать запрос, который получает параметр для"TOP"Команда, и затем я сталкиваюсь с ошибкой "Ошибка в главном выражении"

Работы:

SELECT TOP 5 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue

Не работает:

SELECT TOP @param1 * FROM dbo.SomeTable
WHERE SomeColumn = SomeValue

сопроводительный текст http://www.freeimagehosting.net/uploads/f9b9354577.jpg

39
задан Alon Amir 16 June 2012 в 14:05
поделиться

2 ответа

Нужны скобки, и только для SQL Server 2005 и более поздних версий

SELECT TOP (@param1) ...
91
ответ дан 27 November 2019 в 02:17
поделиться

Для более старых версий SQL Server вы можете использовать:

SET ROWCOUNT @NumberOfResults
SELECT * FROM MyTable
SET ROWCOUNT 0

Однако вам не следует использовать этот метод в 2008 году :

Использование SET ROWCOUNT не повлияет Операторы DELETE, INSERT и UPDATE в следующем выпуске SQL Server (2008). Не используйте SET ROWCOUNT с Операторы DELETE, INSERT и UPDATE в новых разработках и планируем изменять приложения, которые в настоящее время используют Это. Также для DELETE, INSERT и Операторы UPDATE, которые в настоящее время используют УСТАНОВИТЬ ROWCOUNT, мы рекомендуем вам перепишите их, чтобы использовать синтаксис TOP. Для получения дополнительной информации см. УДАЛИТЬ. (Transact-SQL), INSERT (Transact-SQL), или ОБНОВЛЕНИЕ (Transact-SQL).

6
ответ дан 27 November 2019 в 02:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: