SQL SERVER 聯機叢書中的定義:
存儲過程是保存起來的可以接受和返回用戶提供的參數的 Transact-SQL 語句的集合。
可以創建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。
也可以創建在 Microsoft SQL Server 啓動時自動運行的存儲過程。
/*此種是共用的,需要4個參數*/
/*首先判斷此存儲過程是否存在,若存在則刪除*/
IF OBJECT_ID('PAGE','P') IS NOT NULL
DROP PROC PAGE
GO
CREATE PROC PAGE
@CURRENTPAGE INT=1,@COUNT INT=10,
@TABLENAME NVARCHAR(20),@COLUMN NVARCHAR(20)
AS
DECLARE @SQL NVARCHAR(1000)
DECLARE @TEMP NVARCHAR(50)
DECLARE @SUM INT
DECLARE @T_PAGE INT
/*分頁*/
SET @SQL=N'SELECT TOP '+ CAST(@COUNT AS NVARCHAR(4))
SET @SQL=@SQL + N'* FROM '+@TABLENAME+' WHERE '+@COLUMN+' NOT IN('
SET @SQL=@SQL + N'SELECT TOP '+CAST((@CURRENTPAGE-1)*@COUNT AS NVARCHAR(5))
SET @SQL=@SQL + N' '+@COLUMN+' FROM '+@TABLENAME+')'
EXEC (@SQL)
/*總記錄條數@sum*/
SET @TEMP=N' SELECT @A=COUNT(*) FROM '+@TABLENAME
EXEC SP_EXECUTESQL @TEMP,N'@A INT OUTPUT',@SUM OUTPUT
/*總頁數@T_PAGE*/
SET @T_PAGE=(@SUM+@COUNT-1)/@COUNT
SELECT @SUM AS '總行數',@T_PAGE AS '總頁數'
/*執行程序*/
GO
EXEC PAGE 1,3,S_INFO,S_ID