zoukankan      html  css  js  c++  java
  • Sql Server2008——存储过程编程简单例子

    主要介绍:

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

    实例介绍:

    创建学生表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')

    创建一个名为Student_Info的无参数存储过程,该过程实现从表中查询所有学生基本信息。

    CREATE PROCEDURE Student_Info
    AS
    SELECT * FROM Student

    执行Student_Info存储过程

    EXECUTE Student_Info

    创建一个名为Student_CS的无参数存储过程,该存储过程实现从表中查询所有计算机系的学生姓名

    CREATE PROCEDURE Student_CS
    AS
    SELECT * FROM Student WHERE Sdept='CS'

    执行Student_CS存储过程

    EXECUTE Student_CS

    创建带参数的存储过程。输出指定学号的学生信息。

    CREATE PROCEDURE Query_Student_Info
    @Sno char(9)
    AS
    SELECT * FROM Student WHERE Sno=@Sno

    执行存储过程Query_Student_Info

    EXECUTE Query_Student_Info

    创建带参数的存储过程。根据指定参数增加学生信息,如果学生编号已经存在则不能增加。

    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 '插入错误,该学号的学生信息在数据库中已经存在!'

    执行存储过程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 使用删除学号200215127200215121分别验证存储过程Student_Delete.

    EXECUTE Student_Delete '200215127'
    EXECUTE Student_Delete '200215121'









  • 相关阅读:
    BZOJ 1049: [HAOI2006]数字序列
    BZOJ 1048: [HAOI2007]分割矩阵
    BZOJ 1047: [HAOI2007]理想的正方形
    BZOJ 1046: [HAOI2007]上升序列
    BZOJ 1045: [HAOI2008] 糖果传递
    Flink学习(十三) Flink 常见核心概念分析
    Flink学习(十二) Sink到JDBC(可扩展到任何关系型数据库)
    Flink学习(十一) Sink到Elasticsearch
    Flink学习(十) Sink到Redis
    Flink学习(九) Sink到Kafka
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/4239785.html
Copyright © 2011-2022 走看看