2013-04-13 2 views
1

Это первый раз, когда нужно работать на сервере sql. Я получаю ошибку в «END» как «неправильный синтаксис рядом с END». предположим, если я удалю «предел 20», это не ошибка посева. как я могу это исправить. мой прок:Ошибка синтаксиса sql для оператора select

ALTER PROCEDURE [dbo].[GettotalApps] 
AS 
BEGIN 
    SET XACT_ABORT ON 
    SET NOCOUNT ON 

    SELECT 
     v.appId, 
     v.Description, 
     (SELECT COUNT(appidorchannelid) 
     FROM ratings r 
     WHERE r.AppIdOrChannelId = v.channelid) AS Channelvotes 
    FROM 
     apps v 
    WHERE 
     v.ChannelStatusId = 1 
     AND v.IsChannelPrivate = 0 
    ORDER BY 
     SubscriberCount DESC 
    limit 20 
END 
+0

чтения ответа на этой странице http://stackoverflow.com/questions/9013177/mysql-limit-clause-equivalent-for-sql-server –

ответ

2

SQL Server не имеет LIMIT ключевое слово - это MySQL специфический, не ISO/ANSI-стандарт расширения.

Используйте TOP ключевое слово вместо:

SELECT TOP (20) 
     v.appId, 
     v.Description, 
     (SELECT COUNT(appidorchannelid) 
     FROM ratings r 
     WHERE r.AppIdOrChannelId = v.channelid) AS Channelvotes 
FROM 
     apps v 
Смежные вопросы