sql sever 存储过程总结及实验

存储过程总结及实验

概述

定义
存储过程是数据库中的一个功能,是一组为了完成特定功能、可以接收和返回用户参数的T-SQL语句预编译集合,经过编译后存储在数据库中,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、带参数执行以及其他强大的编程功能。存储过程在第一次执行时进行语法检查和编译,执行后它的执行计划就驻留在高速缓存中,用于后续调用。存储过程可以接受和输出参数、返回执行存储过程的状态值,还可以嵌套调用。
分类
(1)系统存储过程
系统存储过程主要存储在master数据库中,一般以“sp_”为前缀。
(2)用户自定义的存储过程
用户自定义存储过程是由用户创建并能够完成某些特定功能而编写的存储过程,它可以输入参数、向客户端返回表格或结果、消息等,也可以返回输出参数。
(3)扩展存储过程
扩展存储过程通常以“xp_”为前缀。

sql语句总结

Ⅰ 创建

create  procedure  存储过程名
[ @参数名 数据类型 [(长度)] [ ,……, ]]  @参数名 数据类型 [(长度)] output [ ,…… ]
[ with encryption ]
[ with recompile ]
as
T-SQL语句

说明:

  1. [ with encryption ]:可以为存储过程的创建文本加密
  2. [ with recompile ]:在每次执行时重新编译

Ⅱ 执行

execute  存储过程名

说明:

  1. execute命令表示执行存储过程,可以简写成exec。
  2. 存储过程名可以是已创建的用户自定义存储过程名,也可以是系统存储过程名或者扩展存储过程名。

Ⅲ 查看存储过程

Exec sp_depends 存储过程
Exec sp_help 存储过程
Exec sp_helptext 存储过程

说明:

  1. sp_depends显示存储过程所关联的数据表和字段信息。
  2. sp_help显示被查看的存储过程的所有者、类型、创建时间以及包含哪些参数等信息。
  3. sp_helptext显示被查看的存储过程的创建文本信息。
  4. 创建时被加密的存储过程的创建文本不能被查看。

Ⅳ 修改存储过程

alter  procedure  存储过程名
[ @参数名 数据类型 [(长度)] [ ,……, ]]  @参数名 数据类型 [(长度)] output [ ,…… ]
[ with encryption ]
[ with recompile ]
as
T-SQL语句

说明:与创建的语法结构一样。

Ⅴ 删除存储过程

DROP PROCEDURE {procedure}	[,...n]

用法实例

1 输入姓名,查这名学生最好成绩的课程号,并显示这名学生最好成绩的课程信息:

create procedure test1 
@name nvarchar(4),@课程号_最好成绩 nvarchar(10) output 
as 
select @课程号_最好成绩=(select top 1 课程号 from Score where 学号=(select 学号 from 学生 where 姓名=@name) order by 成绩 desc)
declare @sc nvarchar(10) 
exec test1 张三,@sc output 
select * 
from  Course 
where 课程编号=@sc

2 输入年龄段,查在年龄段之间的学生,默认18-22岁之间:

create procedure test2 
@N1 int=18,@N2 int=22
as
select 编号,姓名,性别,年龄 from 学生 
where 年龄 between @N1 and @N2
exec test2                --查询年龄在[18,22]的学生
exec test2 20,30          --查询年龄在[20,30]的学生
exec test2 @N2=30,@N1=20  -- 查询年龄在[20,30]的学生

3 删除存储过程test2:

drop procedure text2
实验5.1 存储过程的建立与使用 一、实验目的 理解存储过程的概念、作用、建立和调用方法。 二、实验原理 使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程存储过程有不带参数的、有带输入参数的、有带输出参数(output)的,还可以有带返回值的。创建好的存储过程可以使用EXEC procedure_name语句执行。 实验5.2 触发器的建立与使用 一、实验目的 理解触发器的概念和作用;了解触发器的分类及触发条件;掌握触发器的定义及应用。 二、实验原理 1、 使用CREATE TRIGGER语句定义触发器,ALTER TRIGGER语句修改触发器,DROP TRIGGER语句删除触发器。 2、 触发器分AFTER/FOR和INSTEAD OF两种类型:AFTER/FOR类型的触发器是在相应的触发语句(insert、delete、update)执行完后被触发的。如果触发语句对应的表上有完整性约束,这些完整性约束必须不违背时,相应的触发语句才能执行,然后才能触发对应的AFTER/FOR类型的触发器。INSTEAD OF类型的触发器会在触发语句(insert、delete、update)执行之前被触发,并取代相应的触发语句。 3、 在表或视图上,每个INSERT、UPDATE或DELETE语句只能创建一个INSTEAD OF类型的触发器,无法为有外键约束且指定为级联删除或级联修改的表创建DELETE或UPDATE语句上的INSTEAD OF 类型的触发器。 SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。当执行INSERT时,INSERTED表中保存要向表中插入的所有行;当执行DELETE时,DELETED表中保存要从表中删除的所有行;当执行UPDATE时,修改前的行保存在DELETED表中,修改后的行保存在INSERTED行中。
一、实验目的 1.掌握SQL Server 2005的安装。 2.掌握SQL Server Management Studio的启动和使用。 3.掌握SQL Server 2005服务器的配置和注册。 4.掌握SQL Server 2005查询的基本使用。 5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL Server Management Studio修改和查看数据库的方法。 7.掌握应用SQL Server Management Studio删除数据库的方法。 8.掌握应用Transact-SQL语句创建数据库的方法。 9.掌握应用Transact-SQL修改和查看数据库的方法。 10.掌握通过Transact-SQL删除数据库的方法。 11.掌握SQL Server 2005数据库和操作系统物理文件的关系。 12.掌握数据库的分离和附加方法。 二、实验内容 1.完成SQL Server 2005开发版的安装。 提示:若计算机系统中已经安装有SQL Server 2005系统,则在安装时需要选择安装命名实例。安装过程中身份验证模式选择“混合模式”并设置sa账户的密码。 2.利用SQL Server配置管理器启动、停止SQL Server服务(包括默认实例和命名实例),配置SQL Server服务为自动启动。 3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用TCP/IP和named pipes”。 5.利用SQL Server Management Studio注册安装的命名实例。 6.利用SQL Server Management Studio注册远程服务器。 提示:注册远程服务器时需要使用混合验证模式,利用sa账户和密码登录远程服务器。 7.启动SQL Server Management Studio,连接到服务器。新建一个查询,在其中输入如下代码: DECLARE @position int, @string char(5) SET @position = 1 SET @string = 'China' WHILE @position <= DATALENGTH(@string) BEGIN SELECT SUBSTRING(@string, @position, 1) 字符, ASCII(SUBSTRING(@string, @position, 1)) ASCII码 SET @position = @position + 1 END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值