SQL存储过程问题

3

我有一个问题,涉及以下存储过程

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

问题出现在 "SELECT TOP @count *" 语句上,为什么我不能选择 @VariableAmount 条记录?

1个回答

6

Need parenthesis...

...
SELECT TOP (@count) *
...

注意:对于参数化TOP,还需要SQL Server 2005及以上版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接