分页存储过程代码如下:
高级自定义查询、分页、多表联合存储过程(转)ALTER PROCEDURE [dbo].[Task_SelectPagedAndSorted] 
高级自定义查询、分页、多表联合存储过程(转)(
高级自定义查询、分页、多表联合存储过程(转)    
@ProjectID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@ProjectAreaID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@DepartmentID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@ChiefID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@State nvarchar(32),
高级自定义查询、分页、多表联合存储过程(转)    
@Priority int,
高级自定义查询、分页、多表联合存储过程(转)    
@Triage nvarchar(32),
高级自定义查询、分页、多表联合存储过程(转)    
@PlanStartDateF datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@PlanStartDateL datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@PlanEndDateF datetime
高级自定义查询、分页、多表联合存储过程(转)    
@PlanEndDateL datetime
高级自定义查询、分页、多表联合存储过程(转)    
@CompletedDateF datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@CompletedDateL datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@SortExpression nvarchar(256),
高级自定义查询、分页、多表联合存储过程(转)    
@StartRowIndex int,
高级自定义查询、分页、多表联合存储过程(转)    
@MaximumRows int
高级自定义查询、分页、多表联合存储过程(转))    
高级自定义查询、分页、多表联合存储过程(转)
AS
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
DECLARE @sql nvarchar(4000)
高级自定义查询、分页、多表联合存储过程(转)
DECLARE @ViewSql nvarchar(4000)
高级自定义查询、分页、多表联合存储过程(转)
DECLARE @WhereClause nvarchar(2000)
高级自定义查询、分页、多表联合存储过程(转)
DeCLARE @FEndRowIndex int
高级自定义查询、分页、多表联合存储过程(转)
DeCLARE @FStartRowIndex int
高级自定义查询、分页、多表联合存储过程(转)
DeCLARE @FMaximumRows int
高级自定义查询、分页、多表联合存储过程(转)
DeCLARE @FSortExpression nvarchar(256)
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
-- Make sure a @sortExpression is specified
高级自定义查询、分页、多表联合存储过程(转)
IF LEN(@SortExpression> 0
高级自定义查询、分页、多表联合存储过程(转)  
SET @FSortExpression = @SortExpression
高级自定义查询、分页、多表联合存储过程(转)
ELSE
高级自定义查询、分页、多表联合存储过程(转)  
SET @FSortExpression = 'ChangedDate DESC'
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
if (@StartRowIndex is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @FStartRowIndex = 0;
高级自定义查询、分页、多表联合存储过程(转)
else
高级自定义查询、分页、多表联合存储过程(转)  
SET @FStartRowIndex = @StartRowIndex
高级自定义查询、分页、多表联合存储过程(转)
if (@MaximumRows is nullor (@MaximumRows <= 0)
高级自定义查询、分页、多表联合存储过程(转)  
SET @FMaximumRows = 1000;
高级自定义查询、分页、多表联合存储过程(转)
else
高级自定义查询、分页、多表联合存储过程(转)  
SET @FMaximumRows = @MaximumRows 
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
SET @FEndRowIndex = @FStartRowIndex + @FMaximumRows
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
SET @WhereClause = 'WHERE --'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@ProjectID is nullor (@ProjectID = '00000000-0000-0000-0000-000000000000'))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ProjectID] = 
''' + CAST(@ProjectID as nvarchar(64)) + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@ProjectAreaID is nullor (@ProjectAreaID = '00000000-0000-0000-0000-000000000000'))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ProjectAreaID] = 
''' + CAST(@ProjectAreaID as nvarchar(64)) + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@DepartmentID is nullor (@DepartmentID = '00000000-0000-0000-0000-000000000000'))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([DepartmentID] = 
''' + CAST(@DepartmentID as nvarchar(64)) + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@ChiefID is nullor (@ChiefID = '00000000-0000-0000-0000-000000000000'))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ChiefID] = 
''' + CAST(@ChiefID as nvarchar(64)) + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if  LEN(@State> 0
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([State] = 
''' + @State + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@Priority is nullor (@Priority < 0))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([Priority] = 
' + CONVERT(nvarchar(10), @Priority+ ')'
高级自定义查询、分页、多表联合存储过程(转)
if  LEN(@Triage> 0
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([Triage] = 
''' + @Triage + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanStartDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanStartDate] is null) or ([PlanStartDate] >= CAST(
''' + CAST(@PlanStartDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanStartDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanStartDate] is null) or ([PlanStartDate] <= CAST(
''' + CAST(@PlanStartDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanEndDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanEndDate] is null) or ([PlanEndDate] >= CAST(
''' + CAST(@PlanEndDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanEndDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanEndDate] is null) or ([PlanEndDate] <= CAST(
''' + CAST(@PlanEndDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@CompletedDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([CompletedDate] is null) or ([CompletedDate] >= CAST(
''' + CAST(@CompletedDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@CompletedDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([CompletedDate] is null) or ([CompletedDate] <= CAST(
''' + CAST(@CompletedDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if (@WhereClause = 'WHERE --')
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = ''
高级自定义查询、分页、多表联合存储过程(转)        
高级自定义查询、分页、多表联合存储过程(转)
SET @sql = '
高级自定义查询、分页、多表联合存储过程(转)SELECT 
高级自定义查询、分页、多表联合存储过程(转)  Task.[TaskID], 
高级自定义查询、分页、多表联合存储过程(转)  [TaskSQN], 
高级自定义查询、分页、多表联合存储过程(转)  [TaskName], 
高级自定义查询、分页、多表联合存储过程(转)  [DepartmentID], 
高级自定义查询、分页、多表联合存储过程(转)  [ChangerID], 
高级自定义查询、分页、多表联合存储过程(转)  [CreatedDate], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT FullName FROM dbo.UserInfo AS CreatorUser WHERE (dbo.Task.CreatorID = UserID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  Creator,
高级自定义查询、分页、多表联合存储过程(转)  [CreatorID], 
高级自定义查询、分页、多表联合存储过程(转)  [Triage], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT DepartmentName FROM dbo.Department WHERE (dbo.Task.DepartmentID = DepartmentID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  Department, 
高级自定义查询、分页、多表联合存储过程(转)  [ChiefID], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT FullName FROM dbo.UserInfo AS ChiefUser WHERE (dbo.Task.ChiefID = UserID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  Chief, 
高级自定义查询、分页、多表联合存储过程(转)  [ProjectID], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT ProjectName FROM dbo.Project WHERE (dbo.Task.ProjectID = ProjectID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  Project,
高级自定义查询、分页、多表联合存储过程(转)  [PlanEndDate], 
高级自定义查询、分页、多表联合存储过程(转)  [PlanStartDate], 
高级自定义查询、分页、多表联合存储过程(转)  [CompletedDate], 
高级自定义查询、分页、多表联合存储过程(转)  [Priority], 
高级自定义查询、分页、多表联合存储过程(转)  [State], 
高级自定义查询、分页、多表联合存储过程(转)  [WorkLoad], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT TaskName FROM dbo.Task AS ParentTask WHERE (dbo.Task.ParentID = TaskID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  ParentTask,  
高级自定义查询、分页、多表联合存储过程(转)  [ParentID], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT ProjectAreaName FROM dbo.ProjectArea WHERE (dbo.Task.ProjectAreaID = ProjectAreaID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  ProjectArea,
高级自定义查询、分页、多表联合存储过程(转)  [ProjectAreaID], 
高级自定义查询、分页、多表联合存储过程(转)  [Description], 
高级自定义查询、分页、多表联合存储过程(转)  [Rev], 
高级自定义查询、分页、多表联合存储过程(转)  [ChangedDate], 
高级自定义查询、分页、多表联合存储过程(转)    (SELECT FullName FROM dbo.UserInfo AS ChangerUser WHERE (dbo.Task.ChangerID = UserID)) AS 
高级自定义查询、分页、多表联合存储过程(转)  Changer  
高级自定义查询、分页、多表联合存储过程(转)FROM Task,    
高级自定义查询、分页、多表联合存储过程(转)    (SELECT 
高级自定义查询、分页、多表联合存储过程(转)      [TaskID],       
高级自定义查询、分页、多表联合存储过程(转)      ROW_NUMBER() OVER (ORDER BY 
' + @FSortExpression + ') AS RowRank 
高级自定义查询、分页、多表联合存储过程(转)    FROM [Task]  
高级自定义查询、分页、多表联合存储过程(转)    
' + @WhereClause + '
高级自定义查询、分页、多表联合存储过程(转)     ) AS RankTask
高级自定义查询、分页、多表联合存储过程(转)WHERE (Task.TaskID = RankTask.TaskID)
高级自定义查询、分页、多表联合存储过程(转)  AND (RankTask.RowRank >= 
' + CONVERT(nvarchar(10), @FStartRowIndex+ '
高级自定义查询、分页、多表联合存储过程(转)  AND (RankTask.RowRank < 
' + CONVERT(nvarchar(10), @FEndRowIndex+ ')
高级自定义查询、分页、多表联合存储过程(转)
'
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
SET @ViewSql = '
高级自定义查询、分页、多表联合存储过程(转)SELECT 
高级自定义查询、分页、多表联合存储过程(转)  ViewTask.[TaskID], 
高级自定义查询、分页、多表联合存储过程(转)  [TaskSQN], 
高级自定义查询、分页、多表联合存储过程(转)  [TaskName], 
高级自定义查询、分页、多表联合存储过程(转)  [DepartmentID], 
高级自定义查询、分页、多表联合存储过程(转)  [ChangerID], 
高级自定义查询、分页、多表联合存储过程(转)  [CreatedDate],   
高级自定义查询、分页、多表联合存储过程(转)  [Creator],
高级自定义查询、分页、多表联合存储过程(转)  [CreatorID], 
高级自定义查询、分页、多表联合存储过程(转)  [Triage],    
高级自定义查询、分页、多表联合存储过程(转)  [Department], 
高级自定义查询、分页、多表联合存储过程(转)  [ChiefID], 
高级自定义查询、分页、多表联合存储过程(转)  [Chief], 
高级自定义查询、分页、多表联合存储过程(转)  [ProjectID], 
高级自定义查询、分页、多表联合存储过程(转)  [Project],
高级自定义查询、分页、多表联合存储过程(转)  [PlanEndDate], 
高级自定义查询、分页、多表联合存储过程(转)  [PlanStartDate], 
高级自定义查询、分页、多表联合存储过程(转)  [CompletedDate], 
高级自定义查询、分页、多表联合存储过程(转)  [Priority], 
高级自定义查询、分页、多表联合存储过程(转)  [State], 
高级自定义查询、分页、多表联合存储过程(转)  [WorkLoad], 
高级自定义查询、分页、多表联合存储过程(转)  [ParentTask],  
高级自定义查询、分页、多表联合存储过程(转)  [ParentID], 
高级自定义查询、分页、多表联合存储过程(转)  [ProjectArea],
高级自定义查询、分页、多表联合存储过程(转)  [ProjectAreaID], 
高级自定义查询、分页、多表联合存储过程(转)  [Description], 
高级自定义查询、分页、多表联合存储过程(转)  [Rev], 
高级自定义查询、分页、多表联合存储过程(转)  [ChangedDate], 
高级自定义查询、分页、多表联合存储过程(转)  [Changer]  
高级自定义查询、分页、多表联合存储过程(转)FROM ViewTask,    
高级自定义查询、分页、多表联合存储过程(转)    (SELECT 
高级自定义查询、分页、多表联合存储过程(转)      [TaskID],       
高级自定义查询、分页、多表联合存储过程(转)      ROW_NUMBER() OVER (ORDER BY 
' + @FSortExpression + ') AS RowRank 
高级自定义查询、分页、多表联合存储过程(转)    FROM [Task]  
高级自定义查询、分页、多表联合存储过程(转)    
' + @WhereClause + '
高级自定义查询、分页、多表联合存储过程(转)     ) AS RankTask
高级自定义查询、分页、多表联合存储过程(转)WHERE (ViewTask.TaskID = RankTask.TaskID)
高级自定义查询、分页、多表联合存储过程(转)  AND (RankTask.RowRank >= 
' + CONVERT(nvarchar(10), @FStartRowIndex+ '
高级自定义查询、分页、多表联合存储过程(转)  AND (RankTask.RowRank < 
' + CONVERT(nvarchar(10), @FEndRowIndex+ ')
高级自定义查询、分页、多表联合存储过程(转)
' 
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
EXEC sp_executesql @sql      
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
RETURN 

计算Count代码如下:
高级自定义查询、分页、多表联合存储过程(转)ALTER PROCEDURE dbo.Task_SelectPagedAndSortedCount 
高级自定义查询、分页、多表联合存储过程(转)(
高级自定义查询、分页、多表联合存储过程(转)    
@ProjectID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@ProjectAreaID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@DepartmentID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@ChiefID uniqueidentifier,
高级自定义查询、分页、多表联合存储过程(转)    
@State nvarchar(32),
高级自定义查询、分页、多表联合存储过程(转)    
@Priority int,
高级自定义查询、分页、多表联合存储过程(转)    
@Triage nvarchar(32),
高级自定义查询、分页、多表联合存储过程(转)    
@PlanStartDateF datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@PlanStartDateL datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@PlanEndDateF datetime
高级自定义查询、分页、多表联合存储过程(转)    
@PlanEndDateL datetime
高级自定义查询、分页、多表联合存储过程(转)    
@CompletedDateF datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@CompletedDateL datetime,
高级自定义查询、分页、多表联合存储过程(转)    
@Count int output
高级自定义查询、分页、多表联合存储过程(转))    
高级自定义查询、分页、多表联合存储过程(转)
AS
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
DECLARE @sql nvarchar(4000)
高级自定义查询、分页、多表联合存储过程(转)
DECLARE @WhereClause nvarchar(2000)
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
SET @WhereClause = 'WHERE --'
高级自定义查询、分页、多表联合存储过程(转)
if not (@ProjectID is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ProjectID] = CAST(
''' + CAST(@ProjectID as nvarchar+ ''') AS uniqueidentifier)'
高级自定义查询、分页、多表联合存储过程(转)
if not (@ProjectAreaID is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ProjectAreaID] = CAST(
''' + CAST(@ProjectAreaID as nvarchar+ ''') AS uniqueidentifier)'
高级自定义查询、分页、多表联合存储过程(转)
if not (@DepartmentID is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([DepartmentID] = CAST(
''' + CAST(@DepartmentID as nvarchar+ ''') AS uniqueidentifier)'
高级自定义查询、分页、多表联合存储过程(转)
if not (@ChiefID is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([ChiefID] = CAST(
''' + CAST(@ChiefID as nvarchar+ ''') AS uniqueidentifier)'
高级自定义查询、分页、多表联合存储过程(转)
if  LEN(@State> 0
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([State] = 
''' + @State + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not ((@Priority is nullor (@Priority < 0))
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([Priority] = 
' + CONVERT(nvarchar(10), @Priority+ ')'
高级自定义查询、分页、多表联合存储过程(转)
if  LEN(@Triage> 0
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    ([Triage] = 
''' + @Triage + ''')'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanStartDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanStartDate] is null) or ([PlanStartDate] >= CAST(
''' + CAST(@PlanStartDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanStartDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanStartDate] is null) or ([PlanStartDate] <= CAST(
''' + CAST(@PlanStartDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanEndDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanEndDate] is null) or ([PlanEndDate] >= CAST(
''' + CAST(@PlanEndDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@PlanEndDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([PlanEndDate] is null) or ([PlanEndDate] <= CAST(
''' + CAST(@PlanEndDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@CompletedDateF is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([CompletedDate] is null) or ([CompletedDate] >= CAST(
''' + CAST(@CompletedDateF as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if not (@CompletedDateL is null)
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = @WhereClause + 'AND
高级自定义查询、分页、多表联合存储过程(转)    (([CompletedDate] is null) or ([CompletedDate] <= CAST(
''' + CAST(@CompletedDateL as nvarchar)  + ''' AS datetime)))'
高级自定义查询、分页、多表联合存储过程(转)
if (@WhereClause = 'WHERE --')
高级自定义查询、分页、多表联合存储过程(转)  
SET @WhereClause = ''
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
SET @sql = '(
高级自定义查询、分页、多表联合存储过程(转)SELECT 
高级自定义查询、分页、多表联合存储过程(转)  
' + @Count + ' = Count(*)
高级自定义查询、分页、多表联合存储过程(转)FROM [Task]  
高级自定义查询、分页、多表联合存储过程(转)    
' + @WhereClause + ')'
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
-- Execute the SQL query
高级自定义查询、分页、多表联合存储过程(转)
EXEC sp_executesql @sql
高级自定义查询、分页、多表联合存储过程(转)
高级自定义查询、分页、多表联合存储过程(转)
RETURN
高级自定义查询、分页、多表联合存储过程(转)

DataList代码如下:
高级自定义查询、分页、多表联合存储过程(转)<atlas:UpdatePanel ID="TaskListUpdatePanel" runat="server" Mode="Conditional">
高级自定义查询、分页、多表联合存储过程(转)      
<Triggers>
高级自定义查询、分页、多表联合存储过程(转)        
<atlas:ControlEventTrigger ControlID="TaskFiltButton" EventName="Click" />
高级自定义查询、分页、多表联合存储过程(转)        
<atlas:ControlEventTrigger ControlID="NewTaskFormView" EventName="ItemInserted" />
高级自定义查询、分页、多表联合存储过程(转)      
</Triggers>
高级自定义查询、分页、多表联合存储过程(转)      
<ContentTemplate>
高级自定义查询、分页、多表联合存储过程(转)        
<asp:DataList ID="TaskListDataList" runat="server" Width="100%" DataSourceID="TaskListDataSource">
高级自定义查询、分页、多表联合存储过程(转)          
<ItemTemplate>
>


        本来系统采用BLinq实现、因为有复杂的逻辑关系、在业务层联合会产生大量的查询语句(大概200~200个)、现在采用存储过程调用动态SQL效率大大提高了。希望会对朋友有所帮助和借鉴

原文:http://www.cnblogs.com/Bolik/archive/2006/08/24/485647.html

相关文章:

  • 2021-11-21
  • 2021-07-17
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-10-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
相关资源
相似解决方案