SQLServer------存储过程的使用
转载:
http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html
例子:
1.学生表
CREATE TABLE [dbo].[Student](
[StudentID] [int] IDENTITY(,) NOT NULL, --主键
[Number] [varchar]() NULL, --学号
[Name] [nchar]() NULL, --学生姓名
[ClassID] [int] NOT NULL --学生所在班级ID
) 插入学生数据:
declare @count int =;
while @count <
begin
insert into Student select @count,'学生'+ convert(varchar,@count,),cast(ceiling(rand() * ) as int)
set @count = @count + ;
end
2.教师表
create table Teacher(
[TeacherID] [int] IDENTITY(,) NOT NULL, --老师ID
[TeacherName] [nchar]() NULL, --老师名称
[ClassID] [int] NOT NULL -- 老师所教的班级ID
) 插入数据:
insert into Teacher select '陈老师',
insert into Teacher select '李老师',
insert into Teacher select '王老师',
insert into Teacher select '赵老师',
3.班级表
create table Class(
[ClassID] [int] IDENTITY(,) NOT NULL, --班级ID
[Code] [varchar]() NULL, --班级编号
[ClassName] [nchar]() NULL --班级名
) 插入班级数据:
insert into Class select '','计算机3班'
insert into Class select '','计算机1班'
insert into Class select '','计算机2班'
insert into Class select '','计算机5班'
insert into Class select '','计算机4班'
4.创建存储过程
create proc proc_getStudentRecord(
@pageIndex int, --页码
@pageSize int, --每页信息数
@name nchar() output --任课老师
)
as
declare @startRow int, @endRow int
set @startRow = (@pageIndex - ) * @pageSize +
set @endRow = @startRow + @pageSize - select s.Number,s.Name,b.Code,b.ClassName from(
select *, row_number() over (order by StudentID asc) as num from Student a where exists(select from Teacher t where a.ClassID = t.ClassID and t.TeacherName = @name)
) s
join
Class as b on
b.ClassID = s.ClassID
where s.num between @startRow and @endRow; go
4.执行存储过程
exec proc_getStudentRecord ,,'陈老师'
SQLServer------存储过程的使用的更多相关文章
- 解剖SQLSERVER 第十五篇 SQLSERVER存储过程的源文本存放在哪里?(译)
解剖SQLSERVER 第十五篇 SQLSERVER存储过程的源文本存放在哪里?(译) http://improve.dk/where-does-sql-server-store-the-sourc ...
- Sqlserver 存储过程中结合事务的代码
Sqlserver 存储过程中结合事务的代码 --方式一 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ ...
- SqlServer存储过程学习笔记(增删改查)
* IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( ...
- SQLServer 存储过程嵌套事务处理
原文:SQLServer 存储过程嵌套事务处理 某个存储过程可能被单独调用,也可能由其他存储过程嵌套调用,则可能会发生嵌套事务的情形. 下面是一种解决存储过程嵌套调用的通用代码,在不能确定存储过程是否 ...
- 创建并在项目中调用SQLSERVER存储过程的简单示例
使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC ...
- SQLSERVER存储过程语法详解
CREATE PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ...
- SqlServer存储过程详解
SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name')) dro ...
- sqlServer存储过程与sql语句的区别
sqlServer 存储过程与sql语句的区别 sql存储过程与sql语句的区别: 从以下几个方面考虑: 1.编写: 存储过程:编写比较难: sql语句:相对简单: 2.性能: 存储过程:高,可移 ...
- SqlServer存储过程(增删改查)
* IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( ...
- SQLSERVER存储过程的基本语法实例
SQLSERVER存储过程的基本语法实例 SQLSERVER存储过程的基本语法实例 一.定义变量--简单赋值 declare @a intset @a=5 print @a --使用select语句赋 ...
随机推荐
- rzsz安装【转】
环境:CentOS 发生情况:需要安装工具:szrz 工具进行 windows 和linux传文件 安装方式:从网上其他教程找的所以就按照如下方式操作 1. 下载软件 rzsz-3.34.tar.gz ...
- Python socket聊天室程序
http://blog.csdn.net/calling_wisdom/article/details/42524745 今天用python的socket模块实现了一个聊天室的程序 虽然功能比较简单, ...
- java依赖的外部文件路径的获取
在开发阶段一直使用以下方式调试没有问题: String path = KStream104.class.getResource("/").getFile().toString(); ...
- mysql慢查询日志开启和存储格式
mysql版本号是mysql5.6.22.安装环境windows7. 1.使用该查询日志能够找到有效率问题的sql语句.并记录下来,进行监控. 能够使用例如以下语句查询和设置慢查询日志 (1) 查看慢 ...
- synchronize模块
synchronize模块 使用rsync同步文件,其参数如下: archive: 归档,相当于同时开启recursive(递归).links.perms.times.owner.group.-D选项 ...
- svn删除项目目录
cmd svn delete -m "质控" svn://192.168.0.253/repos1/质控
- 百万级PHP网站架构工具箱
在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de.Poppen.de是德国的一个社交网站,相对Facebook.Flickr ...
- Error -27780: Connection reset by peer: socket write error
Problem Description: Error: "-27780: read to host failed: [10054] Connection reset by peer" ...
- mssql占用80端口解决办法
services.msc
- am335x gpio分析
/************************************************************************ * am335x_gpio * 本文主要记录am33 ...