设为首页 加入收藏

TOP

善用临时表---同时查询多张表的存储过程
2014-11-24 01:39:10 来源: 作者: 【 】 浏览:4
Tags:善用 临时 ---同时 查询 多张 存储 过程
善用临时表---同时查询多张表的存储过程
sqlserverSQLServerSQLserverSqlServer临时表存储过程
一个存储过程的需求是这样的:
1、取出三张表里的符合条件的数据,合成一张表,并对这一张表分页;
2、计算合成的这张表总共多少条数据
存储过程语句如下:
Create PROCEDURE GetAnnouncementList
@pageSize int,
@pageIndex int
AS
BEGIN
--不返回影响的行数,提高性能--
SET NOCOUNT ON;
declare @rowCount int
--将数据查询出来放入临时表#temptable中,语法:“ select 字段 into 临时表名 from ” --
select ROW_NUMBER()over (order by #temptable.CreatedOn desc)as tempNum, * into #temptable from
(select 'markNews' as mark, News.NewsID,News.NewsTitle,News.CreatedOn from dbo.News where CategoryID ='8b041bf4-24bf-4b35-85c7-f72717dc5752'
union all
select 'markActivity' as mark, Activities.ActivityID,Activities.Subject,Activities.CreatedOn from dbo.Activities where Activities.CheckStatus=1 and IsDeleted=0 and Activities.RealEndTime>(select GETDATE())
union all
select 'markTrain' as mark, Train.TrainID,Train.Subject,Train.CreatedOn from dbo.Train where CheckStatus=1 and Train.PlannedEndTime>(select GETDATE()))as #temptable
--计算临时表中的数据条数--
select @rowCount=COUNT(*) from #temptable
--对临时表中的数据分页读取--
select * from #temptable where #temptable.tempNum>(@pageIndex-1)*@pageSize and #temptable.tempNum<=(@pageIndex*@pageSize)
return @rowCount
END
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇程序员老鸟写sql语句的经验之谈 下一篇SQL Sever怎样同时插入N条数据而..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: