Sql Server2008——存储过程编程简单例子
2024-09-05 16:39:44
主要介绍:
存储过程的定义方法及其使用方法。
实例介绍:
1 创建学生表Student
create database Stu
use Stu
go
CREATE TABLE Student
( Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
); insert into Student values('200215121','李勇','男','20','CS')
insert into Student values('200215122','刘晨', '女','19','CS')
insert into Student values('200215123','王敏','女','18','MA')
insert into Student values('200215125','张立','男','19','IS')
2 创建一个名为Student_Info的无参数存储过程,该过程实现从表中查询所有学生基本信息。
CREATE PROCEDURE Student_Info
AS
SELECT * FROM Student
3 执行Student_Info存储过程
EXECUTE Student_Info
4 创建一个名为Student_CS的无参数存储过程,该存储过程实现从表中查询所有计算机系的学生姓名
CREATE PROCEDURE Student_CS
AS
SELECT * FROM Student WHERE Sdept='CS'
5 执行Student_CS存储过程
EXECUTE Student_CS
6 创建带参数的存储过程。输出指定学号的学生信息。
CREATE PROCEDURE Query_Student_Info
@Sno char(9)
AS
SELECT * FROM Student WHERE Sno=@Sno
7 执行存储过程Query_Student_Info
EXECUTE Query_Student_Info
8 创建带参数的存储过程。根据指定参数增加学生信息,如果学生编号已经存在则不能增加。
CREATE PROCEDURE Query_Student_Info
@Sno char(9)
AS
SELECT * FROM Student WHERE Sno=@Sno EXECUTE Query_Student_Info '200215121' CREATE PROCEDURE Add_Student
@Sno char(9),
@Sname char(20),
@Ssex char(2),
@Sage smallint,
@Sdept char(20),
@Flag int=0
AS
SELECT @Flag=count(*) FROM Student WHERE Sno=@Sno
IF @Flag=0
BEGIN
INSERT INTO Student
VALUES(@SNO, @Sname,@Ssex, @Sage,@Sdept)
PRINT '插入成功!'
END
ELSE
PRINT '插入错误,该学号的学生信息在数据库中已经存在!'
9 执行存储过程Add_Student,结果分别是什么?
EXECUTE Add_Student '200215121','李勇','男',20,'CS'
10 创建带输出参数的存储过程。编写存储过程,返回指定学生学号的学生姓名
CREATE PROCEDURE Student_Name
@Sno char(9),
@Sname char(20) OUTPUT
AS
SELECT @Sname=Sname FROM Student WHERE Sno=@Sno
12 创建存储过程Student_Delete,删除指定学号的学生信息,若成功则打印‘删除成功’,若没有该学号,则打印‘无该学生’。
CREATE PROCEDURE Student_Delete
@Sno char(9),
@Count int=0
AS
SELECT @Count=count(*) FROM Student WHERE Sno=@Sno
IF @Count>0
BEGIN
DELETE FROM Student WHERE Sno=@Sno
PRINT '删除成功!'
END
ELSE
PRINT '无该学生'
13 使用删除学号200215127,200215121分别验证存储过程Student_Delete.
EXECUTE Student_Delete '200215127'
EXECUTE Student_Delete '200215121'
最新文章
- CocoaPods版本升级
- 关于SQL语句优化的一个问题
- 二维码工具类 - QrcodeUtils.java
- 查看linux进程(强制中止进程),服务及端口号,
- 使用PowerShell 命令集进行SQL Server 2012 备份和还原
- 正则表达式测试分析工具Expresso
- window.open弹出窗口调用controller
- Python+Selenium 环境配置之Firefox,IE,Chrome几种浏览器运行
- Linux之正则表达式
- junit的意义
- Java经典编程题50道之三十五
- mac 上格式化磁盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
- Python的基本数据数字、字符串、布尔值及其魔法
- servlet 表单加上multipart/form-data后request.getParameter获取NULL(已解决)
- 20145215《网络对抗》Exp7 网络欺诈技术防范
- Antenna Placement POJ - 3020 (最小边集覆盖)
- hello world之Makefile
- EditPlus 自动格式化js、html、css,以EditPlus 文本编辑器v3.41(1145)为例
- LeetCode_Path Sum
- cnblogs博客迁移到hexo
热门文章
- JavaScript Array pop(),shift()函数
- AspectJ风格的Aop切点表达式
- MongoDB 的聚集操作
- LeetCode :: Sum Root to Leaf Numbers [tree、dfs]
- shell 判断问题总结
- 我最喜欢的模板jade(pug)学习和使用
- Django--基础补充
- 启动 ./spark-shell 命令报错
- 创建自己的Spring Boot Starter
- ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs