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. OSXFUSE file system is not available 解决方法

    操作系统版本:10.14 macos mojeva 今天用truecrypt加载加密盘时候提示次错误:用window加载也有错误,不过用windows自带的工具检查修复了错误. 解决办法: 1.访问h ...

  2. UI自动化之日志

    Python自动化测试中,日志输出功能是不能缺少的一部分.让我们来看看如何实现日志的输出吧 一.控制台输出日志 def get_logger(): try: if not os.path.exists ...

  3. Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  4. jenkins自动化部署vue

    一.nodejs配置 首先加入nodejs插件 在配置里面配置这个插件 这样我们就能在自动构建发布的配置里看到nodejs的编译选项了 二.发布配置 首先新建一个自由风格的项目 然后配置构建保留天数和 ...

  5. 最新版jQuery v3.3.1的BUG以及解决办法(什么问题不重要,怎么解决问题才重要)

    发现问题 最新版的 FineUIPro v5.2.0 中,我们将内置的 jQuery v1.12.4 升级到 jQuery v3.3.1 ,可以看升级记录: +升级到jQuery v3.3.1.    ...

  6. Vue (三) --- Vue 组件开发

    ------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...

  7. FAST LOW-RANK APPROXIMATION FOR COVARIANCE MATRICES

    目录 Nystorm method 低秩逼近 矩阵乘法的逼近 Belabbas M A, Wolfe P J. Fast Low-Rank Approximation for Covariance M ...

  8. Element-UI动态更换主题

    参考:vue-基于elementui换肤[自定义主题] 实践: 需求1.后期维护主题色不更换:  直接在线主题生成工具下载,在APP.VUE引入:(注意Element UI 版本1.3?2.0) 需求 ...

  9. 证明与计算(1): Decision Problem, Formal Language L, P and NP

    0x01 从判定问题到形式语言 这篇讲知识证明的wiki([1]): https://en.wikipedia.org/wiki/Proof_of_knowledge 里面有一句话: Let x be ...

  10. java返回数据工具类

    import com.qbskj.project.util.SpringUtils; /** * 消息 * */ public class Message { /** * 类型 */ public e ...