SQLServer 专题实验9 储存过程的创建与调用

第一题:

第2关:不带参数的SQLServer 储存过程的创建和调用

SET NOCOUNT ON
GO
USE JX
GO
--********** 1、创建存储过程pro_SelectStuAll,用于查询所有学生信息**********--
--********** Begin **********--
CREATE PROCEDURE pro_SelectStuAll AS
SELECT * FROM Student


--********** End **********--
GO

--********** 2、创建存储过程pro_DeleteNoSC,用于删除所有没有选修课程的同学信息**********--
--********** Begin **********--
CREATE PROCEDURE pro_DeleteNoSC AS
DELETE FROM Student
WHERE Sno NOT IN (SELECT Sno FROM SC)


--********** End **********--
GO
--***********3、创建存储过程pro_UpdateSdept,用于把'计算机'系的学生系别修改为'计算机工程'***********--
--********** Begin **********--
CREATE PROCEDURE pro_UpdateSdept AS
UPDATE Student
SET Sdept = '计算机工程'
WHERE Sdept = '计算机'


--********** end **********--
GO
--4、调用存储过程pro_SelectStuAll--
--********** Begin **********--
EXEC pro_SelectStuAll

--********** end **********--
GO
--5、调用存储过程pro_DeleteNoSC--
--********** Begin **********--
EXEC pro_DeleteNoSC

--********** end **********--
GO
--6、调用存储过程pro_UpdateSdept--
--********** Begin **********--
EXEC pro_UpdateSdept
--********** end **********--
-----------------------------------
GO
SELECT * FROM Student

第3关:带输入参数的存储过程的创建和调用

SET NOCOUNT ON
GO
USE JX
GO

--**********1、创建存储过程pro_SelecByJSJ,用以删除指定Sdept的学生信息*************--
--********** Begin **********--
CREATE PROCEDURE pro_DeleteBySdept
    @Sdept VARCHAR(50)
AS
BEGIN
    DELETE FROM Student
    WHERE Sdept = @Sdept
END


--********** end **********--
GO
--**********2、创建存储过程pro_SelecByTprof,用以按照用户指定的职称查询教师的基本信息 *************--
--********** Begin **********--
CREATE PROCEDURE pro_SelecByTprof
    @Tprof VARCHAR(50),
    @Tsex  char(20)
AS
BEGIN
    SELECT * FROM Teacher
    WHERE Tprof = @Tprof and Tsex = @Tsex 
END


--********** end **********--
GO
--**********3、创建存储过程pro_AddTeacher,用以插入指定教工号和姓名的教师信息 *************--
--********** Begin **********--
CREATE PROCEDURE pro_AddTeacher
    @Tno VARCHAR(50),
    @Tname VARCHAR(50)
AS
BEGIN
    INSERT INTO Teacher (Tno, Tname)
    VALUES (@Tno, @Tname)
END


--********** end **********--
GO
--**********4、调用存储过程pro_SelecByJSJ,用于删除'计算机'系学生的信息 *************--
--********** Begin **********--
EXEC pro_DeleteBySdept '计算机'


--********** end **********--
GO
--**********5、调用存储过程pro_SelecByTprof,用于查询所有职称为'副教授'的女教师信息 *************--
--********** Begin **********--
EXEC pro_SelecByTprof '副教授' ,'女'


--********** end **********--
GO
--**********6、调用存储过程pro_AddTeacher,用于插入两名教师信息,他们的教工号和姓名分别是:'005','测试君1'和'006','测试君2' *************--
--********** Begin **********--
EXEC pro_AddTeacher '005', '测试君1'
EXEC pro_AddTeacher '006', '测试君2'


--********** end **********--
GO
SELECT * FROM Student
SELECT * FROM Teacher

第4关:带返回值的存储过程的创建和调用

SET NOCOUNT ON
GO
USE JX
GO
--**********1. 创建一个存储过程Pro_com,用于查询指定的学号是否存在选修课的情况,若存在,则输出该生的学号、姓名及选课门数信息并返回1,否则返回0 *************--
--********** Begin **********--
CREATE PROCEDURE Pro_com
    @Sno char(5)
AS
BEGIN
    DECLARE @Cno INT;
    SELECT @Cno = COUNT(*) 
    FROM SC
    WHERE Sno = @Sno;
    if @Cno > 0 
    Begin
        SELECT Student.Sno as 学号, Student.Sname as 姓名, @Cno as 选课门数
        FROM Student as Student 
        WHERE Student.Sno = @Sno;
        RETURN 1;
    END
    ELSE
    Begin
        RETURN 0;
    END
END;

--********** end **********--
GO
--**********2. 用存储过程Pro_com,用于查询学号为“21001”的同学的选课情况,若返回值为0的,打印输出“不存在该同学的选课信息!”*************--
--********** Begin **********--
DECLARE @result INT
EXEC @result = Pro_com  @Sno = '21001';
IF @result = 0
BEGIN
    PRINT '不存在该同学的选课信息!';
END





--********** end **********--
GO
--**********3. 用存储过程Pro_com,用于查询学号为“21011”的同学的选课情况,若返回值为0的,打印输出“不存在该同学的选课信息!”*************--
--********** Begin **********--
DECLARE @result INT
EXEC @result = Pro_com  @Sno = '21011';
IF @result = 0
BEGIN
    PRINT '不存在该同学的选课信息!';
END



--********** end **********--
GO

  • 14
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: SQL Server 实验五:储存过程创建与使用 储存过程是一组预定义的 SQL 语句,可以被多次调用。它们可以接受参数,可以返回值,可以执行一系列的 SQL 语句,可以包含控制流程的语句,可以使用临时表等等。储存过程可以提高数据库的性能,减少网络流量,提高安全性等等。 在 SQL Server 中,创建储存过程需要使用 CREATE PROCEDURE 语句。语法如下: CREATE PROCEDURE procedure_name [ { @parameter [ data_type ] [ = default ] } ] [ WITH <procedure_option> [ ,...n ] ] AS sql_statement [;] [ ...n ] 其中,procedure_name 是储存过程的名称,@parameter 是储存过程的参数,data_type 是参数的数据类型,default 是参数的默认值,WITH <procedure_option> 是储存过程的选项,sql_statement 是储存过程的 SQL 语句。 例如,以下是一个简单的储存过程,它接受一个参数 @name,返回一个包含该名称的所有记录的结果集: CREATE PROCEDURE get_records_by_name @name nvarchar(50) AS BEGIN SELECT * FROM records WHERE name = @name END 要执行储存过程,可以使用 EXECUTE 或 EXEC 语句。例如: EXECUTE get_records_by_name 'John' 或者: EXEC get_records_by_name 'John' 储存过程还可以使用 OUTPUT 参数返回值。例如: CREATE PROCEDURE get_total_records @total_records int OUTPUT AS BEGIN SELECT @total_records = COUNT(*) FROM records END 要执行带有 OUTPUT 参数的储存过程,需要使用 DECLARE 语句声明一个变量来接收返回值。例如: DECLARE @total_records int EXEC get_total_records @total_records OUTPUT SELECT @total_records 以上就是 SQL Server 实验五:储存过程创建与使用的简单介绍。储存过程是 SQL Server 中非常重要的一个功能,可以提高数据库的性能和安全性,值得深入学习和掌握。 ### 回答2: SQL Server是一个流行的关系型数据库管理系统,支持各种编程语言和工具。在SQL Server中,储存过程是一组预定义的SQL语句的集合,可以多次调用,并且支持传入参数,可以简化复杂的数据操作任务。 创建储存过程可以在SQL Server Management Studio(SSMS)中使用Transact-SQL语言或可视化操作。首先,我们先介绍在SSMS中可视化创建储存过程的方法: 1. 打开SSMS并连接到SQL Server实例 2. 打开“对象资源管理器”,展开“数据库” 3. 找到要创建储存过程数据库,右键单击并选择“新建查询” 4. 在查询编辑器中输入以下代码: ``` CREATE PROCEDURE [dbo].[sp_test] @parameter1 varchar(50), @parameter2 int AS BEGIN -- Insert statements for procedure here SELECT @parameter1 AS StringParam, @parameter2 AS IntParam END GO ``` 其中,“CREATE PROCEDURE”语句定义了储存过程的名称、“[dbo]”表示储存过程所在的模式,可以根据需要进行更改。紧接着的“@parameter1”和“@parameter2”是定义的参数名称和类型。在“AS”关键字后,我们可以编写储存过程的SQL语句。在例子中,我们只是简单地选择参数并将其返回。 5. 点击“执行”按钮(或按F5),储存过程创建成功了。 使用储存过程也是非常简单的。我们可以通过 EXECUTE 或 CALL 语句来执行一个储存过程。例如: ``` EXECUTE [dbo].[sp_test] 'Hello, World!', 123 ``` 执行该语句将会返回以下结果: ``` StringParam IntParam ----------------- ----------- Hello, World! 123 ``` 在使用储存过程时,我们可以传递任意数量和类型的参数,然后使用它们执行各种SQL操作。这不仅可以提高性能,还可以使我们的代码更容易维护和扩展。 总的来说,SQL Server储存过程是一种非常有用的工具,可以使数据库操作更加高效、稳定和可维护。无论你是做数据分析、Web开发还是企业级应用,都应该了解如何创建和使用它们。 ### 回答3: SQL Server是一款广泛应用于企业级数据库管理系统的软件。储存过程是SQL Server中一类常见的代码类型,可以实现存储并重用一些数据库操作,使得开发人员可以在应用中使用这些操作。本文将介绍SQL Server实验五,储存过程创建与使用。 一、创建储存过程 SQL Server可以通过以下语法创建储存过程: ``` CREATE PROCEDURE procedure_name AS BEGIN --SQL statement(s) END; ``` 在创建储存过程时,需要指定储存过程的名称(procedure_name),并在BEGIN和END之间编写一系列SQL语句,这些语句将在储存过程调用时执行。 例如,以下是一个简单的储存过程,用于在表中插入一条新的记录: ``` CREATE PROCEDURE insert_data AS BEGIN INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3) END; ``` 二、使用储存过程 使用储存过程非常简单,只需要使用以下语法: ``` EXECUTE procedure_name; ``` 比如,要使用上面创建储存过程插入一条新记录,只需要运行以下命令: ``` EXECUTE insert_data; ``` 这将执行储存过程中的所有SQL语句,并在表中插入一条新的记录。 储存过程还提供了一些进一步的选项,例如输入参数和输出参数。通过使用输入参数,可以向储存过程中传递需要处理的数据;通过使用输出参数,可以从储存过程中返回处理结果。 三、总结 储存过程是SQL Server中非常常见和实用的功能,可以帮助我们定义一些通用的数据处理逻辑,并重用这些逻辑。在实际应用中,我们可以根据具体的业务需求创建不同类型的储存过程,并通过输入参数和输出参数实现更复杂的数据操作。当然,在使用储存过程时要注意安全问题,避免出现SQL注入等攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值