首页 > 数据库技术 > 详细

<原创>SQLServer一个高效的存储过程

时间:2016-03-24 16:27:31      阅读:180      评论:0      收藏:0      [点我收藏+]
 USE [Ecological]
GO
/****** Object:  StoredProcedure [dbo].[SP_Ecological]    Script Date: 2016/3/24 15:02:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
***************************************************************
** 分页存储过程 **
***************************************************************
参数说明:
1.CurrentPage :当前页码
2.PageSize :分页尺寸
3.SQL:用于自定义查询语句
4.tempTableName:临时表名称
***************************************************************/
 ALTER PROCEDURE [dbo].[SP_Ecological]    
    ( 
@CurrentPage int = 1,
@PageSize int = 10,
@SQL nvarchar(max),
@tempTableName nvarchar(max)
)
AS
DECLARE @strEndRow varchar(500)
DECLARE @strStartRow varchar(500)
DECLARE @strSQL1 VARCHAR(MAX)
DECLARE @strSQL2 VARCHAR(MAX)
DECLARE @strSQL3 VARCHAR(MAX)
SET @strEndRow = CAST(@PageSize*@CurrentPage AS varchar(500))
SET @strStartRow = CAST((@PageSize*(@CurrentPage-1) + 1) AS varchar(500))
SET @strSQL1=‘if object_id(‘‘tempdb..‘+@tempTableName+‘‘‘) is not null Begin drop table ‘+ @tempTableName+‘ End‘
SET @strSQL2=‘  SELECT identity(int,1,1) as ID,* into ‘ +@tempTableName+ ‘ FROM (‘+@SQL+‘) as t‘
SET @strSQL3=‘ select * from ‘+@tempTableName+‘ where id>=‘+@strStartRow+‘ and id<=‘+@strEndRow+‘‘
EXEC(@strSQL1+ @strSQL2+@strSQL3)   
 
 
 
转发需声明!!

<原创>SQLServer一个高效的存储过程

原文:http://www.cnblogs.com/Imgiser/p/5315704.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!