單個分頁的預存程序

來源:互聯網
上載者:User

/*
Descript:單頁資料存放區過程
Author:XQF222
Date:10:38 2007-7-31
*/
CREATE  PROCEDURE SP_SinglePageData(
@TableName  nvarchar(200),            ----要顯示的表或多個表的串連
@SelectFields  nvarchar(200) = '*',      ----要顯示的欄位列表
@PrimaryFiled  nvarchar(50),    ----主表的主鍵
@SortField nvarchar(100) = null,        ----排序欄位列表或條件
@SortOrder  bit = 0,             ----排序方法,0為升序,1為降序
@SelectCondition nvarchar(200) = null, ----不帶where字串的查詢條件
@TotalCounts int  output          ----返回查詢到的記錄總數
)
AS
Declare @sqlTmp nvarchar(1000)  ----存放動態產生的SQL語句
Declare @strTmp nvarchar(1000)  ----存放取得查詢結果總數的查詢語句
Declare @sqlSort nvarchar(200)  ----存放臨時產生的排序條件

--產生查詢語句--------
--此處@strTmp為取得查詢結果數量的語句
if @SelectCondition is null --沒有設定顯示條件
 begin
 set @sqlTmp =  'select ' + @SelectFields + '  From ' + @TableName
 set @strTmp = 'select  @TotalCounts=Count(' + @PrimaryFiled + ')  FROM '+@TableName
 end
else
 begin
 set @sqlTmp =  'select ' + @SelectFields + ' From ' + @TableName + ' where ' +

@SelectCondition
 set @strTmp = 'select @TotalCounts=Count(' + @PrimaryFiled + ')  FROM '+@TableName + '

where ' + @SelectCondition
 end
--取得查詢結果總數量-----

exec sp_executesql @strTmp,N'@TotalCounts int out ',@TotalCounts out
--print @TotalCounts
--產生排序字串
if @SortOrder=0  --升序
begin
   if not(@SortField is null)
  set @sqlSort = ' Order by ' + @SortField
   else
  set @sqlSort = ' Order by ' + @PrimaryFiled 
end
else     --降序
begin
 if not(@SortField is null)
  set @sqlSort = ' Order by ' + @SortField + ' DESC' 
 else
  set @sqlSort = ' Order by ' + @PrimaryFiled + ' DESC '
end
--產生最終查詢字串
if @sqlSort is null
set @sqlTmp = @sqlTmp
else
set @sqlTmp = @sqlTmp + @sqlSort
--print @sqlTmp
exec sp_executesql @sqlTmp
GO
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.