sqlserver存储过程及赋值问题

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:56   1295   0

exec sp_helptext 'sp_databases' 查看存储过程源代码

在存储过程中,经常用到SET NOCOUNT ON;

作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。
当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数;

即使当SET NOCOUNT ON 时候,也更新@@RowCount;

当SET NOCOUNT on时候,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能;

SET NOCOUNT 指定的设置时在执行或运行时候生效,分析时候不生效。

------------------------------------------------------------------------

创建分页查询存储过程:

查询第一页:

查询第二页:

在存储过程编写时,会一直显示语法错误,原因是在当前sql页面写了其他的语句,它会自动判定执行整个页面的语句,在其上面加个go便不会出现此提示了。(包括创建视图的时候)单独选择执行没问题,如果在该存储过程上面有其他语句,必须加go.

go
create proc usp_getMyStudentsDataByPage
@pagesize int =7,
@pageindex int=1,
@recordcount int output,
@pagecount int output as
begin
 select * from (select *,m=ROW_NUMBER() over (order by PersonInfo_id asc) from PersonInfo) as p 
 where p.m between (@pageindex-1)*@pagesize+1 and @pageindex*@pagesize
 set @recordcount=(select count(*) from personinfo)
 set @pagecount=ceiling(@recordcount*1.0/@pagesize)
end

sqlserver赋值:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP