读书人

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

发布时间: 2012-09-13 09:51:52 作者: rapoo

求帮看一小段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 name='+@aendelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where name='+@a+' id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where name='+@a+' order by id) a) where name='+@a+' 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 name='''+@a+''''endelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where name='''+@a+''' id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where name='''+@a+''' order by id) a) where name='''+@a+''' order by id'endexec sp_executesql @sql---@a 的附近有错误  上面是修改好的
[解决办法]
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 name='''+@a+''''endelsebeginset @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where name='''+@a+''' and id>(select max(id) from (  select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where name='''+@a+''' order by id) a) and name='''+@a+'''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 name='''+@a+''' ' end else begin   set @sql='select top '+convert(varchar(10),@pageSize)+' * from gbook where name='''+@a+''' '            +' and id>(select max(id) from (            select top '+convert(varchar(10),@pageSize*(@pageIndex-1))+' id from gbook where name='''+@a+''' 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 name='+@a    endelse    begin        set @sql='select top '+@pageSize+' * from gbook where name='''+@a+''' and id>(select max(id) from (          select top '+@pageSize*(@pageIndex-1)+' id from gbook where name='''+@a+'''           order by id) a) where name='''+@a+''' order by id'    endexec sp_executesql @sql 

读书人网 >SQL Server

热点推荐