问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用存储过程查询出来的数据。

发布网友 发布时间:2022-04-15 03:50

我来回答

2个回答

懂视网 时间:2022-04-15 08:11

自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 然后 条件 等等 来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top 来分页 现在公司要求是使用Row_number 当然 后者效率还是高一点 。至于索引什么的

自己之前一直是使用的通用的存储过程 ,也是封装好的只要传表名 然后 条件 等等
来到新环境 让自己写一个存储过程, 没办法 自己就需要写一个咯 之前写的比较多的是 按 top 来分页 现在公司要求是使用Row_number 当然 后者效率还是高一点 。至于索引什么的 暂时还没有用到 (有什么需求 现学也是可以的)其中也有 with(nolock) 但是会容易造成数据脏读。如果你有用到索引 或者你想看到你的语句查询开销 你可以使用(ctrl+M)键调出来。至于你看到这些占用啥的 懵了? 那就请你移驾 自行查找(我也不会你信吗?)

 USE [JHMinGameDB]
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: yanyunhai
-- Create date: 2016-04-13
-- Description: 新手送豆
-- =============================================
CREATE PROCEDURE [dbo].[Web_Active_Buyu_CardLog_page] --创建该存储过程名字(如已经存在 要改的时候就把 create 变成 Alter)
@State int, 
@startTime datetime,
@endTime datetime,
@pageSize int, 
@pageIndex int, 
@recd int output,--
输出参数 @totalpeas int output --输出参数 AS set @recd=0 --赋值为0是避免查询结果为0 时 显示为null set @totalpeas=0 Declare @recdst int=0,@recdend int=0 --@recdst起始条数 Set @recdst=@pageSize * (@pageIndex-1)+1 -- @recdend 结束条数 Set @recdend=@pageSize + @recdst-1 BEGIN --在对于时间判断时建议 少用 between and 因为 0:00-23:59 declare @SumNum1 int,@SumNum2 int,@SumNum3 int select @SumNum1=COUNT(*) from Active_CardLog with(nolock) where [State]=0 select @SumNum2=COUNT(*) from Active_CardLog with(nolock) where [State]=1 select @SumNum3=COUNT(*) from Active_CardLog with(nolock) where [State]=1 and UpTime>=@startTime and UpTime<@endTime if @State>=0 begin select row_number() over(order by UpTime desc) as rowid,a.id,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,b.myname into #tmp from Active_CardLog a left join JH_member b on b.idx=a.UserID where State=@State --and UpTime>=@startTime and UpTime<@endTime select @totalpeas=isnull(SUM(CardNum),0),@recd=count(1) from #tmp select rowid,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,myname,@totalpeas sumnum,@recd sumRowID,@SumNum1 SumNum1,@SumNum2 SumNum2,@SumNum3 SumNum3 from #tmp where rowid between @recdst and @recdend --根据rowid 来确定显示区间 drop table #tmp end else if @State<0 begin select row_number() over(order by UpTime desc) as rowid,a.id,CardID, CardPwd, CardNum, State, UserID, IP, UpTime, CreateTime,b.myname into #temp from Active_CardLog a left join JH_member b on b.idx=a.UserID where UpTime>=@startTime and UpTime<@endTime select @totalpeas=isnull(SUM(CardNum),0),@recd=count(1) from #temp where rowid between @recdst and @recdend --根据rowid 来确定显示区间 drop table #temp end END - -其实上问可以用不用判断也可以解决这个问题 那就是用 where(([State]=2)or([State]=@state)) - -有人在使用时 会出现 Rowid 报错?自己找找子查询 GO

这里写图片描述
——————– with (nolock)—-数据多的时候可以《索引之后的选择》—————–
使用情况: 当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能。
不过有一点千万要注意的就是,WITH (NOLOCK)的SQL SELECT有可能会造成数据脏读。
用法:select * from table with(nolock) left join table with(nolock) 表名后面接上 with (nolock)
注意事项:①也就是说当使用NoLock时,它允许阅读那些已经修改但是还没有交易完成的数据。因此如果有需要考虑transaction事务数据的实时完整性时,使用WITH (NOLOCK)就要好好考虑一下
②:with(nolock)的写法非常容易再指定索引。
跨服务器查询语句时 不能用with (nolock) 只能用nolock
同一个服务器查询时 则with (nolock)和nolock都可以用
比如:
select * from [IP].a.dbo.table1 with (nolock) 这样会提示用错误
select * from a.dbo.table1 with (nolock) 这样就可以
当然 你也可以看看 over() 开窗函数

其中的一些东西也是看前一任 程序员写的, 然后就有在园子里面看看介绍。 自己摘了一部分 因为看别人的东西的时候也没有做到用怀疑的态度去看 去分析 所以贴出来 。如果你看到以后有错误 有误区 欢迎指正!!
对你的能力是一次证明, 对我是一次帮助。 虚心求学。

热心网友 时间:2022-04-15 05:19

什麼数据库?
如果是sql
server
2005以上的则可以用row_number()
函数来实现
如select
row_number()
over(order
by
排序字段)
as
rn
,*
from
table1
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 电脑怎么登录两个 存储过程中怎么使用row 童年和昆虫记的读书卡 低压用户线路闪断一秒后来电? 昆虫记主要内容 怎么写 电网电压波动时变频器跳闸,有没有办法解决? 昆虫记的阅读记录卡,有阅读心得,有内容摘要 主机电源闪断后,导致硬盘损坏,如何解决? 昆虫记读书卡怎么写 供电电源闪断怎么处理 阅读记录卡,昆虫记内容摘要, 雷击导致电网瞬间断电怎么解决? 电网瞬间掉电是什么原因,有没有什么办法处理 参加国外考试腾讯会议共享屏幕会被第三方发现吗 优米3这个手机你们大家觉得怎样 qq空间中优米手机599元真的假的 优米全网通手机599元推广价是真的吗 微信小程序开发工具哪个好用? 微信小程序有哪些好用的开发工具 手机QQ空间的微电影怎样制作 为什么吃玉米拉出来也是玉米 为什么吃玉米拉出来还是玉米 吃完玉米好几天大便都有玉米 为什么吃下去的玉米,拉出来还是原来的形状? 一台电脑可以同时登几个 我吃的玉米鲜肉饺子,今天拉出来玉米居然没消化还是完整的, 为什么我吃了玉米,拉出来的是玉米?还有上次吃了枸杞,拉出来的是枸杞? 宝宝吃玉米为什么拉出来玉米 为什么我每次吃玉米,隔天排便的时候就会把玉米的原形排出来,是不是消化不好? 给狗狗吃了煮玉米,还不到四个小时就把玉米原模原样的拉出来了,怎么办? 给我哦推荐几首好听的歌曲 推荐一些好听的歌~~ 怎么投诉淘宝商家和物流 淘宝一直没有物流信息可以投诉商家码 淘宝买东西查不到物流,卖家不理人怎么投诉 帮忙解释下这条存储过程,详细详细 怎么看苹果主板板号? 查苹果6s有没被维修人换主板怎么查 capm均衡模型缺点 资产定价模型CAPM计算结果与实际不符的原因