pp214524253 2015-02-02 07:30 采纳率: 50%
浏览 1446

存储过程中,如果传递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后得到的数据不能直接这样引用啊,谁知道具体哪里错了啊。谢谢

  • 写回答

1条回答 默认 最新

  • pp214524253 2015-02-02 07:34
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分