存储过程-触发器-ODBC数据库编程-实验报告.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
存储过程、触发器和 ODBC 数据库编程实验报告 存储过程是数据库管理系统中的一种特殊程序,它可以接受参数、执行一些操作、返回结果,并且可以被重复使用。在本实验报告中,我们将学习如何创建和使用存储过程,并使用 ODBC 连接数据库。 一、存储过程的创建和使用 存储过程可以分为两类:带参数的存储过程和不带参数的存储过程。在本实验报告中,我们将学习如何创建带参数的存储过程。 (1)创建存储过程 jsearch 该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。下面是创建 jsearch 存储过程的 SQL 语句: ```sql CREATE Procedure jsearch(@SPJ_JNO char(10)) AS BEGIN SELECT SNAME, PNAME, JNAME FROM SPJ, S, P, J WHERE @SPJ_JNO = SPJ.JNO AND SPJ.JNO = J.JNO AND SPJ.PNO = P.PNO AND SPJ.SNO = S.SNO END ``` (2)执行 jsearch 存储过程 执行 jsearch 存储过程,查询“J1”对应的信息: ```sql EXEC jsearch 'J1' ``` (3)创建存储过程 jsearch2 该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。下面是创建 jsearch2 存储过程的 SQL 语句: ```sql CREATE PROCEDURE jsearch2(@jno char(10), @SPJ_CURSOR CURSOR VARYING OUTPUT) AS SET @SPJ_CURSOR = CURSOR FOR SELECT J.JNAME, P.PNAME, S.SNAME FROM S, P, J, SPJ WHERE SPJ.JNO = @jno AND S.SNO = SPJ.SNO AND J.JNO = SPJ.JNO AND P.PNO = SPJ.PNO OPEN @SPJ_CURSOR DECLARE @jname char(10), @pname char(10), @sname char(10) DECLARE @SPJ_CURSOR CURSOR EXEC jsearch2 'J1', @SPJ_CURSOR OUTPUT FETCH NEXT FROM @SPJ_CURSOR INTO @jname, @pname, @sname WHILE (@@FETCH_STATUS = 0) BEGIN PRINT(@jname + @pname + @sname) FETCH NEXT FROM @SPJ_CURSOR INTO @jname, @pname, @sname END CLOSE @SPJ_CURSOR DEALLOCATE @SPJ_CURSOR GO ``` (4)创建加密存储过程 jmsearch 该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。下面是创建 jmsearch 存储过程的 SQL 语句: ```sql CREATE PROC jmsearch WITH ENCRYPTION AS SELECT S.SNAME, S.SNO, S.status FROM S WHERE S.CITY = '北京' ``` (5)使用系统存储过程 sp_helptext 查看存储过程 jsearch, jmsearch 的文本信息: ```sql EXEC sp_helptext jsearch EXEC sp_helptext jmsearch ``` (6)执行 jmsearch 存储过程,查看北京供应商的情况: ```sql EXEC jmsearch ``` (7)删除 jmsearch 存储过程: ```sql USE [SPJ] GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[jmsearch]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[jmsearch] GO ``` 二、触发器的创建和使用 触发器是数据库管理系统中的一种特殊程序,它可以在特定的时刻自动执行一些操作。在本实验报告中,我们将学习如何创建和使用触发器。 (1)创建触发器 insert_s 该触发器的作用是:当用户向 S 表中插入记录时,如果插入的 sdept 值为’CS’ ,’IS’ ,’MA’以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。下面是创建 insert_s 触发器的 SQL 语句: ```sql CREATE TRIGGER insert_s ON S FOR INSERT AS IF ((SELECT sdept FROM inserted) IN ('CS', 'IS', 'MA')) BEGIN PRINT '记录插入成功' END ELSE BEGIN PRINT '不能插入记录这样的纪录' END ``` 通过本实验报告,我们学习了如何创建和使用存储过程和触发器,并使用 ODBC 连接数据库。这些知识点对于数据库管理系统的开发和维护非常重要。
- 粉丝: 1
- 资源: 7万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助