存储过程中,如果传递top得到的数据

create PROC ud_report_form1 (@TABLENAME VARCHAR(100))
AS

begin

declare @nu int

--set @nu=(select count(*) from um_report_form where isrc='')

select @nu=count(*) from um_report_form where isrc='')

update um_report_form --修改的那张表
set isrc=b.isrc --修改的字段

from (SELECT isrc ,ROW_NUMBER() OVER (ORDER BY ISRC) AS [ID] FROM um_report_form WHERE ISRC='' ) a,
(select top @nu ISRC,ROW_NUMBER() OVER (ORDER BY ISRC) AS [ID],NEWID() xs from songlist WHERE songlist.isrc <>''AND file_type='A' ORDER BY xs) b
where a.id=b.id --条件,两张的关系

end

上面是我写的一个存储过程,不知道为什么编译时候老是报
消息 102,级别 15,状态 1,过程 um_report_form1,第 53 行
'@nu' 附近有语法错误。

是不是top后得到的数据不能直接这样引用啊,谁知道具体哪里错了啊。谢谢

我已经知道问题出现在哪里了,top后面没有加()谢谢! csdn