IF OBJECT_ID('dbo.GetDataByPageEoms') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.GetDataByPageEoms
IF OBJECT_ID('dbo.GetDataByPageEoms') IS NOT NULL
PRINT '<<< FAILED DROPPING PROCEDURE dbo.GetDataByPageEoms >>>'
ELSE
PRINT '<<< DROPPED PROCEDURE dbo.GetDataByPageEoms >>>'
END
go
create procedure GetDataByPageEoms
( @SqlStr varchar(8000),
@start int,
@limit int
)
AS
DECLARE @PageSizes int,@FirstRec int, @LastRec int, @dt varchar(10), @SelectStr varchar(4000)
begin
set @FirstRec = @start
set @LastRec = @start + @limit + 1 set @dt= substring(convert(varchar,rand()),3,10)
set @SqlStr = stuff(@SqlStr, charindex(' FROM ',upper(@SqlStr)), 6 ,' INTO #Paging FROM ')
--PRINT @SqlStr
if charindex('SELECT DISTINCT',upper(@SqlStr)) >0
set @SqlStr = stuff(@SqlStr, charindex('SELECT DISTINCT',upper(@SqlStr)), 15 ,'SELECT DISTINCT iRowId =identity(10),')
else
set @SqlStr = stuff(@SqlStr, charindex('SELECT',upper(@SqlStr)), 6 ,'SELECT iRowId =identity(10),')
--PRINT @SqlStr
set @SqlStr = 'set rowcount 80000 declare @RecCount int ' + @SqlStr
+ ' select @RecCount = @@rowcount '+ char(13)
+ ' select @PageSizes = Ceiling((@RecCount+0.0)/@limit) '+ char(13)
+ ' SELECT @RecCount as iRecCount,@RecCount as totalCount,@PageSizes as TotalPage, * FROM #Paging WHERE iRowId > '+convert(varchar,@FirstRec)+' and iRowId < '+convert(varchar,@LastRec)
+' set rowcount 0'
+' drop table #Paging '
--PRINT @SqlStr
EXECUTE (@SqlStr)
ENDgo
EXEC sp_procxmode 'dbo.GetDataByPageEoms','unchained'
go
IF OBJECT_ID('dbo.GetDataByPageEoms') IS NOT NULL
PRINT '<<< CREATED PROCEDURE dbo.GetDataByPageEoms >>>'
ELSE
PRINT '<<< FAILED CREATING PROCEDURE dbo.GetDataByPageEoms >>>'
go
谁能帮我改成mysql的过程啊?我对这个不太懂~能边改边解释最好了!
delimiter $$
drop procedure if exists GetDataByPageEoms$$
create procedure GetDataByPageEoms
(SqlStr varchar(8000),start int,limit int)
begin
....
end$$
delimiter;