当前位置: 代码迷 >> Sql Server >> 求帮看一小段SQL存储过程语句,有语法异常
  详细解决方案

求帮看一小段SQL存储过程语句,有语法异常

热度:27   发布时间:2016-04-27 11:20:43.0
求帮看一小段SQL存储过程语句,有语法错误
SQL code
ALTER proc [dbo].[selectmymessage] @a varchar, @pageSize int, @pageIndex intasdeclare @sql nvarchar(2000)if(@pageIndex<2)beginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]endelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+' id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where [email protected]+' order by id) a) where [email protected]+' order by id'endexec sp_executesql @sql


------解决方案--------------------
SQL code
ALTER proc [dbo].[selectmymessage] @a varchar, @pageSize int, @pageIndex intasdeclare @sql nvarchar(2000)if(@pageIndex<2)beginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''''endelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''' id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where [email protected]+''' order by id) a) where [email protected]+''' order by id'endexec sp_executesql @sql[email protected] 的附近有错误  上面是修改好的
------解决方案--------------------
SQL code
ALTER proc [dbo].[selectmymessage] @a varchar, @pageSize int, @pageIndex intasdeclare @sql nvarchar(2000)if(@pageIndex<2)beginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''''endelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''' and id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where [email protected]+''' order by id) a) and [email protected]+'''order by id'ENDexec sp_executesql @sql
------解决方案--------------------
SQL code
alter proc [dbo].[selectmymessage]( @a varchar(1000),  @pageSize int,  @pageIndex int )asbegin declare @sql nvarchar(2000) if(@pageIndex<2) begin   set @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''' ' end else begin   set @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]+''' '            +' and id>(select max(id) from (            select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where [email protected]+''' order by id) a)' end  exec sp_executesql @sqlend
------解决方案--------------------
SQL code
create proc [dbo].[selectmymessage] @a varchar, @pageSize int, @pageIndex intasdeclare @sql nvarchar(2000)if(@pageIndex<2)    begin        set @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where [email protected]    endelse    begin        set @sql='select top [email protected]+' * from gbook where [email protected]+''' and id>(select max(id) from (          select top [email protected]*(@pageIndex-1)+' id from gbook where [email protected]+'''           order by id) a) where [email protected]+''' order by id'    endexec sp_executesql @sql
  相关解决方案