生活随笔
收集整理的這篇文章主要介紹了
存储过程常规
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
use 數(shù)據(jù)庫名 go SET ANSI_NULLs ON go? SET QUOTED_IDENTIFIER ON? go? CREATE PROCEDURE[dbo].[up_am_update] @a ?INT , @b ?int , AS? TRUNCATE TABLE tablename DROP TABLE tablename CREATE PROCEDURE [dbo].[P_GridViewPager] ( @recordTotal INT OUTPUT, ? ? ? ? ? ?--輸出記錄總數(shù) @viewName VARCHAR(800), ? ? ? ? ? ? --表名 @fieldName VARCHAR(800) = '*', ? ? ?--查詢字段 @keyName VARCHAR(200) = 'Id', ? ? ? --索引字段 @pageSize INT = 20, ? ? ? ? ? ? ? ? --每頁記錄數(shù) @pageNo INT =1, ? ? ? ? ? ? ? ? ? ? --當(dāng)前頁 @orderString VARCHAR(200), ? ? ? ? ?--排序條件 @whereString VARCHAR(800) = '1=1' ? --WHERE條件 ) AS BEGIN DECLARE @beginRow INT DECLARE @endRow INT DECLARE @tempLimit VARCHAR(200) DECLARE @tempCount NVARCHAR(1000) DECLARE @tempMain VARCHAR(1000) --declare @timediff datetime? set nocount on --select @timediff=getdate() --記錄時間 SET @beginRow = (@pageNo - 1) * @pageSize ? ?+ 1 SET @endRow = @pageNo * @pageSize SET @tempLimit = 'rows BETWEEN ' + CAST(@beginRow AS VARCHAR) +' AND '+CAST(@endRow AS VARCHAR) --輸出參數(shù)為總記錄數(shù) SET @tempCount = 'SELECT @recordTotal = COUNT(*) FROM (SELECT '+@keyName+' FROM '+@viewName+' WHERE '+@whereString+') AS my_temp' EXECUTE sp_executesql @tempCount,N'@recordTotal INT OUTPUT',@recordTotal OUTPUT --主查詢返回結(jié)果集 SET @tempMain = 'SELECT * FROM (SELECT ROW_NUMBER() OVER (order by '+@orderString+') AS rows ,'+@fieldName+' FROM '+@viewName+' WHERE '+@whereString+') AS main_temp WHERE '+@tempLimit --PRINT @tempMain EXECUTE (@tempMain) --select datediff(ms,@timediff,getdate()) as 耗時? set nocount off END GO
總結(jié)
以上是生活随笔為你收集整理的存储过程常规的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。