我收到以下错误:
消息203,级别16,状态2,过程getQuestion,第18行 名称’select top(1)*来自tlb_options.qID = tlb_Question.id和tlb_Question.qNumber = 1且tlb_Question.id不在tlb_options.qID = 1和tlb_Question.id上的tlb_options内部联接,1)’不是有效的标识符
从以下存储过程中:
ALTER proc getQuestion @qNo bigint, @total bigint, @next nvarchar(max) as begin declare @hisa bigint set @hisa=@total/3 if(@qNo<=@total/3) begin declare @query nvarchar(max) set @query=('select top(1) * from tlb_Question inner join tlb_options on tlb_options.qID=tlb_Question.id and tlb_Question.qNumber=1 and tlb_Question.id not in ('+cast(@next as varchar)+')') print @query execute @query end end
请尝试以下操作,将execute @query更改为执行(@query):
ALTER proc getQuestion @qNo bigint, @total bigint, @next nvarchar(max) as begin declare @hisa bigint set @hisa=@total/3 if(@qNo<=@total/3) begin declare @query nvarchar(max) set @query=('select top(1) * from tlb_Question inner join tlb_options on tlb_options.qID=tlb_Question.id and tlb_Question.qNumber=1 and tlb_Question.id not in ('+cast(@next as varchar)+')') --print @query execute (@query) end end