存儲過程

USE [YuLinEducation_DB]
GO

/****** Object:  StoredProcedure [dbo].[usp_MakerLookTeacherInfoPage]    Script Date: 07/25/2010 12:19:20 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  <藺宜忠>
-- Create date: <2010-7-23>
-- Description: <通過課程類型查詢該課程授課老師基本信息>
-- =============================================
ALTER PROCEDURE [dbo].[usp_MakerLookTeacherInfoPage] --存儲過程的名稱
 -- Add the parameters for the stored procedure here
    @pTranType     varchar(10),       --查詢結果類型,總條數,或結果
 @PageIndex  int = 0,           --顯示第幾頁
 @PageSize  int = 0,           --每頁條數
 @OrderBy  nvarchar(100) = '',--排序字段
--下面爲根據情況而定義的變量
    @CourseTypeID   varchar(20)        --課程類型的編號
AS
DECLARE @Sql nvarchar(Max)             --最終的查詢語句
DECLARE @ConditionSQL nvarchar(2000)   --查詢的條件
DECLARE @DataBaseSQL nvarchar(2000)    --表之間的關係
BEGIN
 SET @Sql = ''
 SET @ConditionSQL = ' where 1<>0 '
 IF  @CourseTypeID <> ''
  SET @ConditionSQL = @ConditionSQL + ' and coursetypecode ='''+@CourseTypeID+''' '
  set @ConditionSQL =@ConditionSQL+' )'

    SET @DataBaseSQL=' '
 IF @pTranType = 'COUNT'           --查詢出結果的總條數
 BEGIN
  SET @Sql = 'select count(DISTINCT teachernumber) from teacher  where teachernumber in (select teachernumber from course  '
  SET @Sql = @Sql +@DataBaseSQL+@ConditionSQL
     print @Sql
  EXEC(@Sql)
  RETURN 0
 END

 IF @pTranType = 'PAGE'            --查詢出結果
 begin
  DECLARE @FirstSQL nvarchar(2000)
  DECLARE @LastSQL nvarchar(1000)
  SET @FirstSQL = 'select * from (select  *,ROW_NUMBER() OVER (ORDER BY ' + @OrderBy + ') AS RowNum from teacher
                    where teachernumber in (select teachernumber from course'  
  SET @LastSQL = ''
  +' ) as tmpTable WHERE tmpTable.RowNum >= (' + CAST(@PageIndex AS varchar(10)) + '-1) * '
   + CAST(@PageSize AS varchar(10)) + ' + 1 and tmpTable.RowNum <= ' + CAST(@PageIndex * @PageSize AS varchar(20))
  SET @SQL = @FirstSQL + @DataBaseSQL + @ConditionSQL  + @LastSQL
  PRINT @SQL
  EXEC(@SQL)
 END
END
GO


--exec [usp_MakerLookTeacherInfoPage]  'page',1,2,'teachernumber','ct00005'

發佈了68 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章