use MySchool
go alter proc P_stu
@pass int= 60
as
select AVG(StudentResult)as 平均分
from Result select * from Result
where StudentResult< @pass
go exec P_stu go ---创建带输出参数的存储过程 select * from Result
go alter procedure p_res
@newId varchar(20) output
as
declare @max varchar(20) select @max=MAX(StudentNo) from Result
where YEAR(ExamDate) = YEAR(GETDATE())
and month(ExamDate) = month(GETDATE())
and day(ExamDate) = day(GETDATE()) if (@max is null)
set @newId = CONVERT(varchar(100),GETDATE(),23)+''
else
begin
declare @right int
set @right = CONVERT(int,right(@max,3))
set @right = @right +1
set @newId = CONVERT(varchar(100),GETDATE(),23)+'-'+(case when @right < 10 then '' when @right<100 then '' end)+ CONVERT(varchar(10),@right) end
go declare @rst varchar(20)
exec p_res @rst output
print @rst --动态存储过程的数据处理 --分页存储过程
--要求
--可输入每页显示条数,默认每页条
--可输入页码进行查询
--可输入条件查询
--可输入表名
--可输入列名
--可输入排序列
--返回总记录数
--返回总页数
--返回查询到的结果
select * from Subject
go if exists(select * from sysobjects
where name = 'p_Mypage')
drop procedure p_Mypage
go create proc p_Mypage
@tableName varchar(20),
@Fields varchar(200),
@orderFields varchar(200),
@where varchar(200),
@pageSize int = 5,
@pageIndex int = 1,
@RecordCount int output,
@PageCount int output with encryption--文本加密
--with recomple--每次都重新编译
as declare @sql nvarchar(4000) set @sql = 'select @RecordCount=count(*) from'+ @tableName+'where 1= 1'+ISNULL(@where,' ') exec sp_executesql @sql,N'@RecordCount int output',@RecordCount output
set @PageCount = ceiling((@RecordCount+0.0)/@pageSize)、 set @sql = '
select * from(
select top '+ CONVERT(varchar(10),@pageSize)+' '+@Fields+' from(
select top '+ CONVERT(varchar(10),@pageSize*@pageIndex)+' * from '+@tableName+'
where 1= 1'+ISNULL(@where,' ')+'
order by '+@orderFields+' )as a
order by a.'+@orderFields+' desc) as b
order by b.SubjectNo' exec (@sql) declare @a int ,@b int
exec p_Mypage @tableName= 'Subject',@Fields = '*',
@orderFields = 'SubjectNo',@where=null,
@pageSize = 5,@pageIndex = 2,@RecordCount = @a output,
@PageCount = @b output
print @a
print @b --游标 declare sur_stu cursor scroll for
select StudentName from Student for read only
open sur_stu declare @name varchar(20)
declare @i int
set @i = 1;
fetch next from cur_stu into @name
while(@@FETCH_STATUS<> -1)
begin
if(@i = 3)
begin
print @name
set @i=0
end
fetch next from cur_stu into @name
set @i=@i +1 end close sur_stu
deallocate sur_stu --使用游标和查存储过程创建分页 性能最差
create procedure sqlPage
@sql nvarchar (4000),
@pageIndex int,
@pageSize int,
@recordCount int output,
@pageCount int output
as
declare @p1 int
exec sp_cursoropen @p1 output,@sql,@scrollopt= 1, @ccopt = 1,@rowcount= @recordCount output
set @pageCount = CEILING((@recordCount+0.0)/@pageSize)
exec sp_cursorfetch @p1,16,@pageIndex,@pageSize
exec sp_cursorclose @p1 declare @a int ,@b int
exec sqlPage 'select * from student',1,5,@a output,@b output
print @a
print @b

SQL server存储过程,触发器,游标相关实例的更多相关文章

  1. SQL Server存储过程和游标有关实例以及相关网址

    内含游标的存储过程实例 第一种写法 GO BEGIN IF (object_id('PT_FAULT_REPORT', 'P') is not null) drop proc PT_FAULT_REP ...

  2. sql server 存储过程使用游标记录

    sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...

  3. Sql Server存储过程和游标的配合操作

    本段代码主要为了记录存储过程以及游标的使用,防止以后自己忘记 知识点:1.存储过程书写 2.游标书写 3.游标循环更新记录 create proc saletargetas declare @ower ...

  4. SQL Server 存储过程具体解释

    SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理 ...

  5. SQL Server基础之游标

    查询语句可能返回多条记录,如果数据量非常大,需要使用游标来逐条读取查询结果集中的记录.应用程序可以根据需要滚动或浏览其中的数据.本篇介绍游标的概念.分类.以及基本操作等内容. 一:认识游标   游标是 ...

  6. Microsoft SQL Server 存储过程

    Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...

  7. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

  8. SQL Server 中的游标(cursor)

    http://www.cnblogs.com/Dlonghow/archive/2009/05/14/1456910.html 在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据 ...

  9. SQL Server 存储过程(转载)

    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...

  10. (摘录)SQL Server 存储过程

    文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...

随机推荐

  1. MongoDB语法与现有关系型数据库SQL语法比较

    MongoDB语法            MySql语法 db.test.find({'name':'foobar'})             <==>          select ...

  2. HTML基础-------HTML标签(1)

    HTML标签(1) h系列(容器级双标签) h系列标签分为六个等级(h1,h2,h3,h4,h5,h6) 语义:给文本添加一个标题 标题重要程度逐级递减,一个页面只能有一个h1级的标签,并且大多数时候 ...

  3. Docker(4):Docker集中化web界面管理平台—Shipyard部署

    //关闭防火墙 并禁止自启 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable fir ...

  4. 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数

    Description 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数.n由键盘输入. Input 输入一个整数 Output 输出表达式的值 Sample Input 5 Sam ...

  5. CodeSmith 二、多模板按目录树批量自动生成代码

    通过调用指定目录下的所有模板,逐一按照数据表生成独立的代码文件.支持多模板调用.支持所有数据表生成或批量指定多个生成.支持自动的文件目录结构.支持代码文件格式化命名等. 背景:最近一个新项目一高兴选了 ...

  6. postman Installation has failed: There was an error while installing the application. Check the setup log for more information and contact the author

    Error msg: Installation has failed: There was an error while installing the application. Check the s ...

  7. ecshop 商品属性显示方法

    功能:在商品列表上,点击放大镜,显示商品所有属性以及其价格,效果如下: 方法/步骤: 1.编辑\admin\templates\goods_list.htm 模板,在 <!-- 商品搜索 --& ...

  8. 2018年NGINX最新版高级视频教程

    2018年NGINX最新版高级视频教程,想要的联系我,QQ:1844912514

  9. git异常操作解决办法合集

    1. git add .后发现提交错误,想撤销 git reset head 文件名-----撤销某个文件 git reset head --hard 强制撤销当前的所有操作到上次提交的版本 2. g ...

  10. g.DrawImage图片合成在本机可以,在服务器一直报内存不够

    g.DrawImage图片合成在本机可以,在服务器一直报内存不够,发现是这个要设为false