- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储过程触发器实例
CREATE TABLE Student
( Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) ,
Ssex CHAR(2),
Sage int ,
Sdept CHAR(20)
)
CREATE TABLE SC
(
Sno CHAR(9),
Cno CHAR(4),
Grade int
)
存储过程
例1.带有 SELECT 语句的存储过程:列出计算机系学生的信息
CREATE PROCEDURE p_student1
AS
SELECT *
FROM student
WHERE sdept = ‘计算机系‘
调用:EXEC p_student1
例2.带有输入参数的存储过程:查询指定系部的学生信息。
CREATE PROCEDURE p_student2 @sdept as varchar(20)
AS
SELECT *
FROM student
WHERE sdept = @city
调用:EXEC p_student2 ‘计算机
EXEC p_student2 ‘信息技术
例3.带有多个输入参数并有默认值的存储过程:查询系部、指定年龄段的学生的信息。
CREATE PROCEDURE p_student3
@sdept char(20)=‘计算机,@ag1 int, @ag2 int
AS
SELECT *
FROM student
WHERE zdept = @zh
and sage = @ag1 and sage = @ag2
按参数位置传递值
EXEC p_student3 ‘计算机’, 18,20 【顺序类型必须一致】
按参数名传递值
EXEC p_student3 @age1=18, @age2=20 , @sdept =‘计算机’
【不关心参数定义的顺序,按名赋值】
*定义了默认值,可不为有默认值的参数提供值如:
EXEC p_student3 @age1=18, @age2=20
EXEC p_student3 @sdept =‘计算机’,@age1=18, @age2=20
例4.带输出参数的存储过程。计算两个数的乘积,并将计算结果作为输出参数返回给调用者。
CREATE PROCEDURE p_multi
@var1 int, @var2 int, @var3 int output
As
Set @var3 = @var1 * @var2
执行此存储过程:
Declare @res int
EXEC p_multi 5,7,@res output
Print @res
注:调用时,输出参数名后加上: output
例5.带输入参数和一个输出参数的存储过程。统计指定系部的学生的平均年龄,并将统计的结果作为输出参数返回。
CREATE PROC p_Avgage
@sdept varchar(20), @avg_age int output
AS
SELECT @avg_age = AVG(age)
FROM student
WHERE sdept = @sdept
执行此存储过程:
DECLARE @age int
EXEC p_Avgage ‘计算机系, @age output
PRINT @age
例6.建立修改数据的存储过程。对学生成绩表,将指定课程号的学生成绩适当提高,增加的规则:如果成绩高于70,则提高10%;如果成绩在60~70之间,则提高20%,否则提高30%。
CREATE PROCEDURE p_update
@code char(20)
AS
UPDATE 成绩表 SET 成绩 = 成绩 *
case
when 成绩 70 then 1.1
when 成绩 between 60 and 70 then 1.2
else 1.3
end
WHERE 课程号 = @code
例7.建立删除数据的存储过程。对成绩表,删除指定课程号的不及格的学生的成绩记录。
CREATE PROCEDURE p_delete
@code char(20)
AS
DELETE FROM 成绩表
WHERE 成绩 60
and 课程号 = @code
从存储过程中返回数据
例
您可能关注的文档
- 基础知识第四章出版行政管理.doc
- 基础练习题3.doc
- 基站故障处理流程和解析.doc
- 基础数据处理技术要求20130924.doc
- 塑料成型加工与模具复习题.doc
- 塑料成型工艺及模具设计叶久新答案.doc
- 塑料成型工艺与模具设计复习题(一).doc
- 塑料成型工艺与模具设计复习题(二).doc
- 塑料成型工艺复习题.doc
- 塑料模习题1.doc
- 信息技术-通信行业:OpenAI发布o1模型,有望驱动推理算力需求再上新台阶.pdf
- 信息技术-电子行业华为2024全连接大会前瞻:聚焦华为全连接,共赢行业智能化.pdf
- 信息服务-AI Agent(智能体):从技术概念到场景落地.pdf
- 通信-OpenAI发布o1新模型,光博会新技术精彩纷呈.pdf
- 通信-“合成数据+强化学习”:大模型进化的新范式.pdf
- 宏观专题研究:降息的预期和现实如何博弈?.pdf
- 宏观深度报告:美联储历次开启降息:经济与资产.pdf
- 宏观经济专题研究:从货币、财政政策力度指数到宏观政策力度综合指数.pdf
- 储能专题系列(1):装机高增,价格底部,盈利分化.pdf
- 智慧园区-福清市光电科技产业园音西片区-产业园区服务设施园区服务中心智慧管理平台系统项目.docx
文档评论(0)