SQL存储过程问题

Lu4*_*Lu4 3 sql sql-server stored-procedures

我有以下存储过程的问题

CREATE PROCEDURE LockRoots
    -- Add the parameters for the stored procedure here
    @lock uniqueidentifier,
    @count int
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    UPDATE R
    SET R.[Lock] = @lock
    FROM 
    (
        SELECT TOP @count *
        FROM [Root] as R
        --LEFT JOIN [Container] as C ON R.ID = C.RootID
        WHERE [Lock] IS NULL
        --ORDER BY NEWID()
    );
END
GO
Run Code Online (Sandbox Code Playgroud)

"SELECT TOP @count*" 出现问题,为什么我不能"选择顶级的@VariableAmount"记录?

gbn*_*gbn 6

需要括号......

...
SELECT TOP (@count) *
...
Run Code Online (Sandbox Code Playgroud)

注意:SQL Server 2005+也用于参数化TOP