2013-04-13 142 views
1

這是第一次在sql server上工作。我在「END」處收到錯誤,因爲「END END附近的語法不正確」。假設如果我刪除「限制20」,它不播種錯誤。我該如何解決它。 我PROC:select語句的sql語法錯誤

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