这段存储过程什么意思?该如何处理

这段存储过程什么意思???
USE [WEBCITY]
GO
/****** Object:  StoredProcedure [dbo].[spAll_ReturnRows]    Script Date: 07/14/2013 19:34:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spAll_ReturnRows]
(
 @SQL nVARCHAR(4000),
 @Page int,
 @RecsPerPage int,
 @ID VARCHAR(255),
 @Sort VARCHAR(255)
)
AS

DECLARE @Str nVARCHAR(4000)
if CHARINDEX(@ID,@Sort) =0
   begin
       set @Sort=@Sort+','+@ID
   end 
SET @Str='SELECT   TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN 
(SELECT   TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@Sort

PRINT @Str

EXEC sp_ExecuteSql @Str
sql2000不能用吗???
------解决方案--------------------
你把@Str中的内容显示出来看看