存儲過程的運用

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章