【SQL Server】存储过程的创建和使用

这篇具有很好参考价值的文章主要介绍了【SQL Server】存储过程的创建和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要内容

        1.编写带输入参数的存储过程proc_St

        2.执行带输入参数的存储过程proc_St

        3.编写并执行带输出参数的存储过程proc_STAVG

        4.编写3个带输入参数的存储过程并分别执行

        5.  用系统存储过程查看刚创建的存储过程的信息、查看存储过程定义的脚本

        6.  练习修改存储过程和删除存储过程的语句


1)编写带输入参数的存储过程proc_St

打开SMSS,继续使用在实验6中创建的S_C_SC数据库;

【SQL Server】存储过程的创建和使用

打开“新建查询”窗口,输入以下T-SQL语句进行存储过程proc_St的创建;

CREATE PROC proc_St @SSname VARCHAR(20),@SSno VARCHAR(9)

AS
   BEGIN
         IF NOT EXISTS (SELECT * FROM Student WHERE Sname = @SSname AND Sno=@SSno)
             BEGIN
                  PRINT '没有该学生!'
                  RETURN
             END
         ELSE
             BEGIN
                  SELECT Sno,Sname,Ssex,Sage,Sdept,Cno,Grade from Student,SC
                  WHERE Student.Sno=SC.Sno and Student.Sno=@SSno
                  RETURN
             END
   END

【SQL Server】存储过程的创建和使用

运行后发现系统报对象名(表名)无效,核对后发现所选择的数据库不准确,按照以下操作将数据库从master更改为S_C_SC;

【SQL Server】存储过程的创建和使用

此时T-SQL语句便可正常运行,但是发现有一处Sno报不明确;

【SQL Server】存储过程的创建和使用

检查后发现引用的两个表(Student、SC)中均有Sno,故将此处的Sno明确为Student.Sno即可

【SQL Server】存储过程的创建和使用

执行后顺利创建出名为proc_St的存储过程;

【SQL Server】存储过程的创建和使用

2)执行带输入参数的存储过程proc_St

打开“新建查询”窗口,分别输入下列T-SQL语句进行存储过程proc_St的调用;

要求:如果学生选课数据库中存在所指定的学号和姓名的学生,则返回这个学生的信息及选课信息;否则给出“没有该学生”的提示信息;

EXEC proc_St "浦飞白" ,"202008"
EXEC proc_St "唐黄" ,"201908"

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

我提供的数据库中存在浦飞白,但没有唐黄,功能顺利实现。

3)编写并执行带输出参数的存储过程proc_STAVG

打开“新建查询”窗口,输入以下T-SQL语句进行存储过程proc_STAVG的创建;

CREATE PROC proc_STAVG @SSage SMALLINT OUTPUT
AS
    SET @SSage = (SELECT AVG(Sage) FROM Student)
    PRINT @SSage

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

可以看见已成功创建;

下面使用T-SQL语句进行该存储过程的调用;

DECLARE @SSage SMALLINT
EXEC proc_STAVG @SSage OUTPUT

【SQL Server】存储过程的创建和使用

经验证,输出的平均年龄无误;

4)编写3个带输入参数的存储过程并分别执行:

(a).insert_Student

T-SQL语句:

CREATE PROCEDURE insert_Student @SSno CHAR(9),@SSname CHAR(20),@SSex CHAR(2),@SSage SMALLINT,@SSdept CHAR(20)
AS
BEGIN
    IF EXISTS (SELECT * FROM Student WHERE Sno=@SSno and Sname = @SSname)
             BEGIN
                  PRINT '该学生已存在!'
                  RETURN
             END
             ELSE
             BEGIN
                  INSERT
                  INTO Student (Sno,Sname,Ssex,Sdept,Sage)
                  VALUES(@SSno,@SSname,@SSex,@SSdept,@SSage)   
                  RETURN
             END
END

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

成功创建,下面执行——插入一条学生唐黄的信息;

T-SQL语句:

DECLARE @SSno CHAR(9),@SSname CHAR(20),@SSex CHAR(2),@SSage SMALLINT,@SSdept CHAR(20)
EXEC insert_Student @SSno = '201908',@SSname = '唐黄',@SSex = '男',@SSdept = 'CS',@SSage = 21

【SQL Server】存储过程的创建和使用

Student表前后对照:

【SQL Server】存储过程的创建和使用 【SQL Server】存储过程的创建和使用

成功插入;

(b).update_Student

T-SQL语句:

CREATE PROCEDURE  update_Student @SSno CHAR(9),@SSname CHAR(20),@SSex CHAR(2),@SSage SMALLINT,@SSdept CHAR(20)
AS
BEGIN
    update Student
    SET Sname = @SSname,Ssex = @SSex,Sage = @SSage,Sdept = @SSdept
    WHERE Sno = @SSno
END

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

成功创建,下面执行——更新学生唐黄的信息;

T-SQL语句:

DECLARE  @SSno CHAR(9),@SSname CHAR(20),@SSex CHAR(2),@SSage SMALLINT,@SSdept CHAR(20)
EXEC update_Student @SSno='201908',@SSname='唐黄',@SSex='男',@SSdept='IS',@SSage=20

【SQL Server】存储过程的创建和使用

“唐黄”信息前后对照(修改年龄为20,专业为IS):

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

成功更新;

(c).delete_Student

T-SQL语句:

CREATE PROCEDURE  delete_Student @SSno CHAR(9)
AS
BEGIN
    DELETE
    FROM Student
    WHERE Sno = @SSno                                  
END

【SQL Server】存储过程的创建和使用

【SQL Server】存储过程的创建和使用

成功创建,下面执行——删除学生唐黄的信息;

T-SQL语句:

DECLARE  @SSno CHAR(9)
EXEC delete_Student @SSno = '201908'

【SQL Server】存储过程的创建和使用

Student表前后对照:

【SQL Server】存储过程的创建和使用 【SQL Server】存储过程的创建和使用

4)用系统存储过程查看刚创建的存储过程的信息、查看存储过程定义的脚本:

T-SQL语句:

SP_HELP proc_St

【SQL Server】存储过程的创建和使用

SP_HELPTEXT insert_Student

【SQL Server】存储过程的创建和使用

5)练习修改存储过程和删除存储过程的语句:

修改存储过程T-SQL语句:

ALTER PROCEDURE insert_Student(@SSname VARCHAR(50))
AS
SELECT * FROM Student WHERE Sname = @SSname

【SQL Server】存储过程的创建和使用

存储过程insert_Student前后对照(基于SP_HELP):

【SQL Server】存储过程的创建和使用 【SQL Server】存储过程的创建和使用

删除存储过程T-SQL语句:

DROP PROC insert_Student

【SQL Server】存储过程的创建和使用 【SQL Server】存储过程的创建和使用

已成功删除。


总结

本文主要进行了存储过程的设计、创建、使用、修改、删除等操作,详细展示了这一流程。文章来源地址https://www.toymoban.com/news/detail-421251.html

到了这里,关于【SQL Server】存储过程的创建和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server 存储过程

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念     存储过程Procedure是一组为了完成特定功能的SQL语句集

    2024年02月16日
    浏览(30)
  • SQL Server基础之存储过程

     SQL Server中的存储过程是使用T_SQL编写的代码段。它的目的在于能够方便的从系统表中查询信息,或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是SQL Server数据库与应用程序之间的编程接口。在很多情况下,一些代码会被开发者重复编写多次,如果

    2024年02月13日
    浏览(26)
  • MS SQL Server 查看存储过程

    要查看 MS SQL Server 中的存储过程,可以使用以下方法之一: 使用 SQL Server Management Studio (SSMS): 连接到 SQL Server 数据库实例并展开数据库节点。 在对象资源管理器中,展开 \\\"编程性对象\\\" 节点,然后选择 \\\"存储过程\\\" 节点。 在右侧的窗格中,将显示数据库中的所有存储过程。

    2024年02月14日
    浏览(36)
  • SQL Server 存储过程:BBS论坛(表结构文档下载及30个存储过程)

    基于 Asp.Net 和 SQL Server 实现了一个BBS论坛,论坛功能比较强大,论坛大部分业务逻辑基于存储过程实现,记录一下。 序号 存储过程 功能说明 1 sp_bbs_admin_add 添加管理员 2 sp_bbs_admin_del 删除系统管理员 3 sp_bbs_admin_modi 修改管理员密码 4 sp_bbs_article_add 发表帖子 5 sp_bbs_article_del 删

    2024年04月09日
    浏览(27)
  • SQL Server判断数据库、表、列、视图、存储过程、函数是否存在

    在写一些业务逻辑相对复杂点的存储过程的时候,经常会用到临时表或者数据表作为临时结果的保存。但每次在作表是否存在的判断时,往往想不起完整的SQL写法。因此,记录一些常用的数据库对象是否存在的判断方法,可以达到快速查找的目的。正是:好记性不如烂笔头。

    2024年02月02日
    浏览(49)
  • SQL 存储过程使用

    Transact-SQL中的存储过程,非常类似于C#语言中的方法,可以重复调用。当存储过程执行一次后,可以将语句存储到缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经过编译后存储

    2023年04月08日
    浏览(27)
  • mysql:存储过程的创建与使用

    一、创建存储过程 使用MySql Workbench创建存储过程,一定要记得使用 delimiter 指明结束符,否则会报错:Statement is incomplete, expecting: \\\';’ 错误示例: 正确示例: 其中,//就是结束符,可以自行指定,比如一般都用$$。 二、存储过程语法 这里就不照搬官方的语法了,按照我的理

    2024年02月09日
    浏览(29)
  • MySQL系列(九)存储过程的创建和使用

    (1)利用预处理sql语句输出teacher表中前n行记录,执行预处理命令时具体输出前5行的数据。 (2)利用预处理sql语句,更改course表中课程号为c05109的课程名称为“数据库系统原理”。 (3)创建存储过程update_email,修改student表中姓名为‘封月明’的学生的email为‘feng@qq.com’。

    2024年02月13日
    浏览(26)
  • 【python】使用xlrd和xlwt实现表格创建、sheet添加、内容存储

    最近在编程的过程中,总是涉及将数据存储到EXECEL情况,下面将自己实现的方法进行分析与共享,有瑕疵的地方还请赐教。 一、直接上代码 二、测试代码 (1)当无文档路径的情况下,会自动创建一个文档,并将数据存储到表格中 (2)当有文档,无对应的sheet页时,将自动

    2024年02月12日
    浏览(27)
  • SQL Server 实验一 数据库的创建和使用

    任务描述 本关简要介绍 SQL Server 数据库、 SQL Server 中的系统数据库和用户数据库,根据介绍的知识完成相关选择题。 相关知识 SQL Server 简介 数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。在当今的互

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包