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后得到的数据不能直接这样引用啊,谁知道具体哪里错了啊。谢谢