存储过程写法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储过程的定义和使用
一、启动SQL查询分析器
通过菜单[新建查询],启动SQL查询分析器。
系统将打开“连接到服务器”窗口
⏹在服务器名称(指定SQL Server服务器)栏中,可选择需要连接的SQL
Server服务器。
⏹在身份验证中,可选择登录SQL Server服务器的验证方式。
如果实验用机的SQL Server安装时设定了混合验证方式,则“SQL Server
身份验证”方式可选。选择该方式,其登录名默认为:sa,密码默认是:
空。
点击按钮“确认”,SQL查询分析器将连接到指定的SQL Server服务器,并打开SQL查询分析器的界面
SQL查询分析器的界面:
SQL语句作用
的当前数据库
SQL语句输入窗口
对象浏览窗口
⏹左侧窗口是“对象浏览器”窗口;
⏹右侧窗口是SQL语句的输入和调试窗口,可在该窗口中直接输入SQL语
句或打开一个SQL脚本文件(后缀名为*.sql的文件);
⏹上方的数据库列表显示了当前SQL语句作用的数据库。
二、创建数据库
使用SQL语句创建实验数据库SCMIS,并创建3张表:STUDENT、COURSE和SC,输入数据。
以下内容均使用SQL语句在SQL查询分析器中执行运行。
(a)在SQL SERVER2012中,在查询分析器中使用T-SQL语句:
CREATE DATABASE SCMIS
ON (NAME='SCMIS',
FILENAME='E:\SCMIS.MDF',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5%)
LOG ON
(NAME='SCMIS_Log',
FILENAME='e:\SCMIS_Log.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
(b)在SQL SERVER中查询分析器的编辑窗口中用下列SQL语句:
/* 建表 */
use SCMIS
CREATE TABLE [dbo].[COURSE] (
[CNO] [char] (2) PRIMARY KEY ,
[CNAME] [varchar] (16) NOT NULL ,
[CREDIT] [int] ,
[C_TOTAL] [int] ,
[CPNO] [char] (2)
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[STUDENT] (
[SNO] [char] (5) PRIMARY KEY ,
[SNAME] [char] (8) NOT NULL ,
[SSEX] [char] (2) CONSTRAINT chkSsex CHECK(ssex IN ('男','女')) ,
[SDEPT] [varchar] (10) ,
[SMAJOR] [varchar] (10) ,
[SAGE] [int] CONSTRAINT chkSage CHECK(sage>=16 and sage<=40) ,
[NATIVE] [varchar] (30) ,
[PHONE] [char] (7)
) ON [PRIMARY]
CREATE TABLE [dbo].[SC] (
[SNO] [char] (5) NOT NULL ,
[CNO] [char] (2) NOT NULL ,
[SCORE] [int] ,
CONSTRAINT pkSC PRIMARY KEY(sno,cno),
FOREIGN KEY(sno) REFERENCES student(sno),FOREIGN KEY(cno) REFERENCES course(cno)
) ON [PRIMARY]
GO
(c)在SQL SERVER中查询分析器的编辑窗口中使用下列SQL 语句插入数据:
/* 数据输入 */
INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Sdept,SMajor,Phone,Native)
VALUES ('14001','李勇','男',20,'CS','软件工程',2681032,'福建')
INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Sdept,SMajor,Phone,Native)
VALUES ('14002','刘晨','女',19,'IS','信息管理',2682437,'福建')
INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Sdept,SMajor,Phone,Native)
VALUES ('14003','王名','女',18,'MA','计算数学',2680050,'山东')
INSERT INTO STUDENT(Sno,Sname,Ssex,Sage,Sdept,SMajor,Phone,Native)
VALUES ('14004','张立','男',19,'IS','电子商务',2681032,'湖北')
INSERT INTO COURSE(Cno,Cname,Cpno,Credit,C_Total)
VALUES ('C1','数据库','C5',3,3)
INSERT INTO COURSE(Cno,Cname,Credit,C_Total)
VALUES ('C2','数学',3,2)
INSERT INTO COURSE(Cno,Cname,Cpno,Credit,C_Total)
VALUES ('C3','信息系统','C1',4,2)
INSERT INTO COURSE(Cno,Cname,Credit,C_Total)
VALUES ('C4','操作系统',2,2)
INSERT INTO COURSE(Cno,Cname,Cpno,Credit,C_Total)
VALUES ('C5','数据结构','C6',3,1)
INSERT INTO COURSE(Cno,Cname,Credit,C_Total)
VALUES ('C6','C语言',2,1)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14001','C1',92)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14001','C2',85)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14001','C3',88)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14002','C2',90)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14002','C3',80)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14003','C1',76)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14003','C4',82)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14004','C5',75)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14004','C6',77)
INSERT INTO SC(Sno,Cno,Score)
VALUES ('14004','C1',55)
GO
三.存储过程的创建和使用
1. 创建一个存储过程course_proc1,显示每门课程选修学生信息及其成绩。
方法一:使用Management Studio
选择数据库SCMIS->可编程性->“存储过程”,在其上单击右键->选择“新建存储过程…”,打开“存储过程属性”对话框,输入存储过程正文。