主要介绍:

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

实例介绍:

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. discuz !NT 3.5 论坛整合 .net 网站用户登录,退出

    using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlCont ...

  2. Java jar转exe

    http://www.blogjava.net/baoyaer/articles/97405.html Java转exe篇: 实现方式:Eclipse搭配JSmooth(免费). 1.先由Eclips ...

  3. 无法连接到服务器,用户xxx登陆失败"

    无法连接到服务器,用户xxx登陆失败" 该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式, 因此用户无法使用SQL Server的登录 ...

  4. ios程序,顶部和底部产生空白——程序不能全屏运行

    在开发过程中,遇到过这样的问题,整个程序不能以全屏状态运行,顶部和底部出现空白,如下图所示: 这样的原因是:设置的启动页不合适,设置大小合适的启动页就好了

  5. centos安装pcntl扩展

    php为源码安装,安装目录为/www/php/,源码包目录为/www/software/php-5.6.30 首先,进入到源码包中扩展目录 /www/software/php-5.6.30/ext/p ...

  6. java中不能用小数点(.)来做分隔符

    split()括号里是一个String的参数,所以一定要符合这种:split(".")形式,即点'.'要用双引号""括起来"."在java中 ...

  7. Newtonsoft.Json之JArray, JObject, JProperty,JValue

    JObject staff = new JObject(); staff.Add(new JProperty("Name", "Jack")); staff.A ...

  8. HDU 4883 TIANKENG’s restaurant Bestcoder 2-1(模拟)

    TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/O ...

  9. hdu 1010 Tempter of the Bone 奇偶剪枝

      如果所给的时间(步数) t 小于最短步数path,那么一定走不到. 若满足t>path.但是如果能在恰好 t 步的时候,走到出口处.那么(t-path)必须是二的倍数. 关于第二种方案的解释 ...

  10. iOS scrollView中嵌套多个tableView处理方案

    项目中经常会有这样的需求,scrollView有个头部,当scrollView滚动的时候头部也跟着滚动,同时头部还有一个tab会锁定在某个位置,scrollView中可以放很多不同的view,这些vi ...