一个分页用的存储过程,表里面有个id字段是自增型的。
我分页的做法是根据提供的第几页数和每页数量来做的,
存储过程中有这样一个语句
SELECT @TID=MAX([id]) FROM(SELECT TOP @COUNT [id] FROM city) AS T
SELECT @TID
是用来获取给定行数和页数得到的最大id号的,但是SQL2000不支持SELECT TOP @COUNT 这样的形式,请问这句SQL语句应该怎么修改才能在SQL2000里正确执行?
谢谢~~
我分页的做法是根据提供的第几页数和每页数量来做的,
存储过程中有这样一个语句
SELECT @TID=MAX([id]) FROM(SELECT TOP @COUNT [id] FROM city) AS T
SELECT @TID
是用来获取给定行数和页数得到的最大id号的,但是SQL2000不支持SELECT TOP @COUNT 这样的形式,请问这句SQL语句应该怎么修改才能在SQL2000里正确执行?
谢谢~~
2005 里可以 select top(@count) from table
SELECT @TID')
set @sql=n'SELECT MAX([id]) FROM(SELECT TOP @COUNT [id] FROM city) AS T'
exec sp_exectesql @sql,N'@COUNT int',@count
SELECT @SQL
Exec sp_executesql @SQL
SELECT @TID
还是不能返回值,返回的是NULL
(Co int)
SELECT @SQL=N'insert into #ls SELECT MAX([id]) FROM(SELECT TOP '+CONVERT(VARCHAR(10),@COUNT)+' [id] FROM city) AS T'
Exec sp_executesql @SQL
SELECT @TID'
Alter PROCEDURE aaa
(
@a int = 1
)
AS
SET NOCOUNT ON
declare @sql nvarchar(4000)
set @sql='SELECT MAX([id]) FROM(SELECT TOP '+ CONVERT(nVARCHAR(10),@a)+' [id] FROM TbFixeDassetsPlan) AS T'
Exec sp_executesql @sqlexec aaa 5话说这样没问题...刚才楼上几位的都貌似对了...
我的SQL语句上有个取值的语句哦。SELECT @TID=MAX([id]) FROM(SELECT TOP @COUNT [id] FROM city) AS T
SELECT @TID我得到了这个@TID后下面还有操作的。
exec @SQLOK
Alter PROCEDURE aaa
(
@a int = 1
)
AS
SET NOCOUNT ON
declare @sql nvarchar(500)
declare @aa nvarchar(4000)
set @sql='SELECT ''@aa''=MAX([id]) FROM(SELECT TOP '+ CONVERT(NVARCHAR(20),@a)+' [id] FROM TbFixeDassetsPlan) AS T'
Exec sp_executesql @sql,N'@aa nvarchar ',@aa
exec aaa 5