---存储过程
if object_id('gettable') is not null
drop PROCEDURE gettable
go
CREATE PROCEDURE gettable
@orderField varchar(200), ---排序字段
@orderType varchar(200), ---排序顺序,是降序,升序还是
@StartRow int, --开始页
@MaxiRow int ---总共多少页
as
begin
select f.id,f.ShelfName,f.StorehouseId,f.Description,f.CreateUserId,f.CreateUserName,f.CreateTime,f.ModifyUserId,
f.ModifyUserName,f.ModifyTime,f.SortCode,f.Default1,f.Default2,f.Default3,f.Default4,f.Default5,s.StoreName
into #GF from DY_Shelf f left join dbo.DY_Storehouse s on f.StorehouseId = s.id
Select * From
(Select ROW_NUMBER() Over(Order By '+' @orderField '+' @orderType'+') As rowNum ,*
From (select * from #GF) As T ) As N
Where rowNum >= @StartRow And rowNum <= @MaxiRow
drop table #GF
end
GO
报错信息
消息 102,级别 15,状态 1,过程 gettable,第 14 行
'@orderField' 附近有语法错误。
消息 102,级别 15,状态 1,第 21 行
'-' 附近有语法错误。
------解决方案--------------------
Select * From
(Select ROW_NUMBER() Over(Order By @orderField, @orderType ) As rowNum ,*
From (select * from #GF) As T ) As N
Where rowNum >= @num And rowNum <= @@num1
drop table #GF
不用加号连接起来吧,另外你的@num,@@num1都没有声明吧
------解决方案--------------------
试试这个:
---存储过程
if object_id('gettable') is not null
drop PROCEDURE gettable
go
CREATE PROCEDURE gettable
@orderField varchar(200), ---排序字段
@orderType varchar(200), ---排序顺序,是降序,升序还是
@StartRow int, --开始页
@MaxiRow int ---总共多少页
as
begin
select f.id,f.ShelfName,f.StorehouseId,f.Description,f.CreateUserId,f.CreateUserName,f.CreateTime,f.ModifyUserId,
f.ModifyUserName,f.ModifyTime,f.SortCode,f.Default1,f.Default2,f.Default3,f.Default4,f.Default5,s.StoreName
into #GF from DY_Shelf f left join dbo.DY_Storehouse s on f.StorehouseId = s.id
declare @sql varchar(8000)
set @sql = '
Select * From
(Select ROW_NUMBER() Over(Order By '+ @orderField +' '+@orderType+') As rowNum ,*
From (select * from #GF) As T ) As N
Where rowNum >= '+cast(@StartRow as varchar) +' And rowNum <= '+cast(@MaxiRow as varchar)
exec(@sql);
drop table #GF
end
GO