主要介绍:

存储过程的定义方法及其使用方法。

实例介绍:

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'

Sql Server2008——存储过程编程简单例子的更多相关文章

  1. SQL Server Service Broker 简单例子 (转)

    SQL Server Service Broker服务体系结构 消息类型 — 定义应用程序间交换的消息的名称.还可以选择是否验证消息.约定 — 指定给定会话中的消息方向和消息类型.队列 — 存储消息. ...

  2. sql server存储过程编程

    存储过程是一组完成特定功能的SQL 语句集合,经编译后存储在数据库中.   存储过程作为一个单元进行处理并以一个名称来标识.它能向用户返回数据.向数据库表中写入或修改数据等操作. 用户通过指定存储过程 ...

  3. php,mysql存储过程的简单例子

    一.连接mysql 使用phpmyadmin: 打开test数据库: 二.创建存储过程 参数如图. 三.php中调用存储过程 <?php $user = "root"; // ...

  4. SQL SERVER2008 存储过程、表、视图、函数的权限

    EXEC sp_addrolemember N'db_owner', N'db'----将db 设置为 db_owner 角色中的一员 EXEC sp_droprolemember N'db_owne ...

  5. python网络编程——简单例子

    客户端(client.py) import socket import sys port = 70 host = sys.argv[1] filename = sys.argv[2] s = sock ...

  6. linux 内核驱动编程 简单例子 与_IO, _IOR, _IOW, _IOWR 宏解析

    一._IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包 ...

  7. c# socket编程简单例子

    服务器端代码 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Thr ...

  8. php 类与对象 面向对象编程 简单例子

    <?php class Foo { //类 名称为Foo public $aMemberVar = 'aMemberVar Member Variable'; //类变量 public $aFu ...

  9. SQL Server2008存储过程中函数的用法(举例)

    USE   数据库 GO SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO CREATE   function  函数名称 (@EmpID   nvarcha ...

随机推荐

  1. 使用 JavaScript开发的跨平台音乐、书籍播放器

    代码地址如下:http://www.demodashi.com/demo/12542.html 演示效果 歌曲推荐界面 歌手搜索界面 歌词预览界面 书籍推荐界面 代码实现过程 首页代码: 'use s ...

  2. 在 Linux 系统下使用 PhotoRec & TestDisk 工具来恢复文件

    当你在系统中有意或无意地使用 shift + delete 组合键.删除选项,或是清空回收站的方式来删除一个文件时,该文件的内容并没有从硬盘(或是其它存储设备)上直接销毁. 它仅仅是从系统的目录结构中 ...

  3. ubuntu下设置静态ip

    直接修改系统配置文件ubuntu的网络配置文件是:/etc/network/interfacesubuntu命令行修改网络配置方法前面auto  eth?,让网卡开机自动挂载. 为网卡配置静态IP地址 ...

  4. Unable to connect to a repository at URL 解决方法

    提示"Unable to connect to a repository at URL 'svn://localhost/project1/'" or “Can't connect ...

  5. Eclipse配色利器

    1 http://eclipsecolorthemes.org/  这是官网 2 安装后,window-preferences-general-appearance-color theme 即可找到多 ...

  6. 在Excel2003中给定区域填充随机数?

    1.选中一个单元格,输入“=RAND()*40+60”,点CTRL+ENTER键,即可完成公式填充. 2.鼠标悬停单元格边框右下角,出现“+”符号,左键拉动实现格式复制,从而填充整个区域随机数. ★题 ...

  7. 转:HTTP ---HTTP头的编码问题(Content-Disposition)

    最近在做项目时遇到了一个 case :需要实现一个强制在浏览器中的下载功能(即强制让浏览器弹出下载对话框),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符). 前一个需求很容易实 ...

  8. sprint3 【每日scrum】 TD助手站立会议第八天

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 调整闹钟和整个项目的显示效果,最后做出了微信界面滑动的显示效果 整合原来做过的功能,并做相应的改进,整合其他的功能 在界面的设计和用户交互上始 ...

  9. 炒美股史考特(Scottrade)开户准备及如何获取免费交易(最新2017版)

    最新美股史考特(Scottrade)开户及汇款攻略 (2017 年 6 月) 一   前言 二   开户流程 三    激活账户 四 转账汇款 五 小结 一 前言:为什么选择史考特(Scottrade ...

  10. TMS320C6455 SRIO 实现方案

    TMS320C6455 SRIO 实现方案 SRIO(Serial RapidIO)构架是一种基于高性能包交换的互连技术,主要功能是完成在一个系统内的微处理器.DSP.通信和网络处理器.系统存储器以及 ...