第8章 存储过程

合集下载

第9章 存储过程与存储函数

第9章  存储过程与存储函数

第9章存储过程与存储函数一、选择题1.MySQL中存储过程的建立以关键字()开始,后面仅跟存储过程的名称和参数。

A.CREATE FUNCTION B.CREATE TRIGGERC.CREATE PROCEDURE D.CREATE VIEW2.下列关于存储过程名描述错误的是()。

A.MySQL的存储过程名称不区分大小写。

B.MySQL的存储过程名称区分大小写。

C.存储过程名不能与MySQL数据库中的内置函数重名。

D.存储过程的参数名不要跟字段名一样。

3.下面声明变量正确的是()。

A.DECLARE x char(10) DEFAULT 'outer 'B.DECLARE x char DEFAULT 'outer 'C.DECLARE x char(10) DEFAULT outerD.DECLARE x DEFAULT 'outer '4.从tb_sutdent表中将名称为mrsoft的用户赋值给host,以下SQL语句正确的是()。

A.SELECT host INTO name FROM tb_sutdent WHERE name ='mrsoft';B.SELECT name INTO host FROM tb_sutdent WHERE name= 'LeonSK ';C.SELECT name INTO host FROM tb_sutdent WHERE name='mrsoft';D.SELECT name INTO host FROM tb_sutdent WHERE name=‘mrsoft’;5.光标的一般使用步骤,以下正确的是()。

A.声明光标使用光标打开光标关闭光标B.打开光标声明光标使用光标关闭光标C.声明光标打开光标选择光标关闭光标D.声明光标打开光标使用光标关闭光标6.下列控制流程语句中,MySQL存储过程不支持()。

第八章___档案检索

第八章___档案检索

第二节 《中国档案主题词表》
《中国档案主题词表》是由表达档案内 容主题的自然语言中优选出的语义相关、族 性相关的科学术语所组成的规范化词典。
一、《中国档案主题词表》的选词原则与选 词范围 (一)选词原则 (二)选词范围
二、《中国档案主题词表》的结构体例 (一)主表 (二)词族索引 (三)范畴索引 (四)附表——人名表、机构名表
第八章 档案检索
第一节 第二节 第三节 第四节 第五节 第六节 第七节 档案检索概述 中国档案分类法》 《中国档案分类法》 中国档案主题词表》 《中国档案主题词表》 档案著录 档案标引 档案检索工具与目录中心 档案的计算机检索
本书由vince上传于世界工厂--学堂中心精品下载栏目 上传于世界工厂 学堂中心精品下载 精品下载栏目
二、档案检索工具的种类 (一)按检索范围分 1.全宗范围 2.档案馆(室)范围 3.若干馆范围 4.专题范围
(二)按载体形式分 1.纸张式检索工具 2.缩微式检索工具 3.机读式检索工具
(三)按编制方式分 1.目录 2.索引 3.指南
(四)按排检方法分 检索工具按排检方式分为分类和主题 两大类。
第七节 档案的计算机检索
一、档案计算机检索的特点 (一)检索速度快 (二)检索点多,检出率高 (三)能满足多元检索需求,检索效果好 (四)利于实现资源共享 (五)服务方式灵活多样
二、计算机检索系统的基本结构 (一)硬件 (二)软件 (三)数据
三、计算机检索系统的流程 (一)档案信息的输入(存储) (二)档案信息的输出
一、档案标引方式 (一)标引工作按照工作方式分为人工标引和 机器标引 (二)标引工作按照检索体系区分为分类标引 和主题标引 (三)标引工作按提供检索标识的数量可分为 浅度标引和深度标引

第8章(1)__嵌入式SQL

第8章(1)__嵌入式SQL

(二)使用游标的SQL语句
• 下列情况必须使用游标 • 查询结果为多条记录的SELECT 语句 • CURRENT形式的UPDATE语句 • CURRENT形式的DELETE语句
• 使用游标的步骤 1. 说明游标 2. 打开游标
3.推进游标指针并取当前记录
4. 关闭游标 5.释放游标
1. 说明游标
• 游标
– 游标是系统为用户开设的一个数据缓冲区,存放 SQL语句的执行结果 – 每个游标区都有一个名字 – 用户可以用SQL语句逐一从游标中获取记录,并赋 给宿主变量,交由主语言进一步处理
(一)不需游标的SQL语句 • 说明性语句
• 数据定义语句
• 数据控制语句
}
最简单的一类语句,不需返回 结果,不使用主变量,在主语 言中只需加前缀EXEC SQL和 语句结束符即可。
• 语句: DEALLOCATE cursor_name
例1.查询结果为多条记录的SELECT语句 查找由主变量DEPT中给出的某个系的全体学生信息
EXEC SQL DECLARE SX CURSOR FOR 定义游标 SELECT S#,SN,SA FROM S WHERE SD=:DEPT; EXEC SQL OPEN SX; 打开游标 DO WHILE EXEC SQL FETCH SX INTO :S#, :SNAME, :AGE; …… 推进游标 END; 关闭游标 EXEC SQL CLOSE SX;
第八章 数据库编程
一.SQL的使用方式
1、交互式:在终端上每输入一条SQL语句,系统立即执行,
然后等待用户输入下一条语句。
2、嵌入式(嵌入到某种主语言中使用): 宿主语言负责:运算、处理、流程控制等 SQL负责:数据库操作

SQL Server 2005数据库原理及应用教程第8章 存储过程和触发器

SQL Server 2005数据库原理及应用教程第8章 存储过程和触发器

2.相关注意事项 ①不能将 CREATE PROCEDURE语句与其他 SQL 语句组合 PROCEDURE语句与其他 到单个批处理中。 ②创建存储过程的权限默认属于数据库所有者,该所有者可将 此权限授予其他用户。 ③存储过程是数据库对象,名称必须遵守标识符规则。 ④只能在当前数据库中创建存储过程。 ⑤一个存储过程的最大尺寸为128M。 ⑤一个存储过程的最大尺寸为128M。 ⑥可以在存储过程内引用临时表。 ⑦如果执行的存储过程调用另一个存储过程,则被调的存储过 程可以访问由第一个存储过程创建的包括临时表在内的所有 对象。 ⑧存储过程中参数的最大数量为2100。 ⑧存储过程中参数的最大数量为2100。 ⑨不要以sp_为前缀创建任何存储过程。 ⑨不要以sp_为前缀创建任何存储过程。
1.语法格式 创建存储过程的语法格式: CREATE PROC[EDURE] procedure_name[;number] [{@parameterdata_type} [VARYING][=default][OUTPUT] ][,...n] WITH AS sql_statement [ ...n ] ①procedure_name:用于指定要创建的存储过程的名称。 procedure_name:用于指定要创建的存储过程的名称。 ②number:该参数是可选的整数,它用来对同名的存储过程分组,以便用 number:该参数是可选的整数,它用来对同名的存储过程分组,以便用 一条 DROP PROCEDURE 语句即可将同组的过程一起除去。 ③@parameter:过程中的参数,在 CREATE PROCEDURE 语句中可以 @parameter:过程中的参数,在 声明一个或多个参数。 ④data_type:用于指定参数的数据类型。 data_type:用于指定参数的数据类型。 ⑤VARYING:用于指定作为输出OUTPUT参数支持的结果集。 VARYING:用于指定作为输出OUTPUT参数支持的结果集。 ⑥DEFAULT:用于指定参数的默认值。 DEFAULT:用于指定参数的默认值。 ⑦OUTPUT:表明该参数是一个返回参数。 OUTPUT:表明该参数是一个返回参数。 ⑧AS:用于指定该存储过程要执行的操作。 AS:用于指定该存储过程要执行的操作。 ⑨sql_statement:是存储过程中要包含的任意数目和类型的 Transactsql_statement:是存储过程中要包含的任意数目和类型的 TransactSQL 语句。

MySQL数据库技术与应用(慕课版)课后习题答案

MySQL数据库技术与应用(慕课版)课后习题答案

第1章数据库概述1.填空题(1)Oracle(2)U 1U 2U 4U(3)体积小、安装成本低、速度快、源码开放(4)Memcached、Redis、mongoDB(5)大、中、小型网站中2.选择题(1)A(2)B(3)A(4)A(5)D3.简答题(1)常见的关系型数据库有MySQL、Oracle、SQL Server和Access数据库。

MySQL数据库主要应用在广泛地应用到互联网上的大、中、小型网站中;Oracle数据库主要应用在传统大企业、政府机构、金融机构、证券机构等;SQL Server数据库主要应用在部分电商和使用Windows 服务器平台的企业;Access数据库早期应用于小型程序系统ASP + Access、系统留言板、校友录等。

(2)关系型数据库按照结构化的方法存储数据,具备纵向扩展能力,采用结构化查询语言,强调ACID规则,强调数据的强一致性,可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以回滚事务。

非关系型数据库不需要固定的表结构,一般情况下也不存在对数据的连续操作。

不同点:关系型数据库使用表结构,非关系型的数据库格式灵活。

关系型数据库支持SQL语言,支持事务,非关系型数据库不提供SQL语言,无事务处理。

相对于关系型数据库,非关系型数据库在大数据存取上具备无法比拟的性能优势。

(3)应该注意MySQL的版本和开发人员使用的版本。

第2章环境的安装与基本配置1.填空题(1)Ubuntu CentOS Red Hat(2)RPM包二进制包源码包(3)仅主机模式NAT模式桥接模式(4)数据库语言(5)Mysqladmin、mysqldump等命令2.选择题(1)A(2)B(3)B(4)D(5)D3.简答题(1)在企业中应该使用源码编译方式安装MySQL,使用源码安装在编译安装过程可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。

(2)VMware虚拟平台提供3种网络模式。

厦门大学-林子雨-数据库系统原理2016版-第8章-数据库编程ppt

厦门大学-林子雨-数据库系统原理2016版-第8章-数据库编程ppt

2. 主变量
主语言向SQL语句提供参数 将SQL语句查询数据库的结果交主语言进一步处理

3. 游标
解决集合性操作语言与过程性操作语言的不匹配
《数据库系统原理》
厦门大学计算机系
林子雨
ziyulin@
2016版
一、SQL通信区
SQLCA: SQL Communication Area
厦门大学计算机系
林子雨
ziyulin@
2016版
C语言编写嵌入式SQL实例(5)
《数据库系统原理》
厦门大学计算机系
林子雨
ziyulin@
2016版
六、编译运行C程序 嵌入SQL的C应用程序具体到VC++6.0、 SQL Server2000下调试可分为五步: • (1)环境初始化 • (2)预编译 • (3)编译 • (4)链接 • (5)运行
负责控制程序流程

它们之间应该如何通信?
厦门大学计算机系 林子雨 ziyulin@ 2016版
《数据库系统原理》
嵌入式SQL语句与主语言之间的通信(续)
• 数据库工作单元与源程序工作单元之间的通信:

1. SQL通信区
向主语言传递SQL语句的执行状态信息 使主语言能够据此控制程序流程
《数据库系统原理》
厦门大学计算机系
林子雨
ziyulin@
2016版
游标(续)
《数据库系统原理》
厦门大学计算机系
林子雨
ziyulin@
2016版
四、建立和关闭数据库连接
建立数据库连接
EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];

Removed_数据库第8-11章习题

Removed_数据库第8-11章习题第8章数据库编程⼀、选择题1、修改存储过程使⽤的语句是()。

A. ALTER PROCEDUREB. DROP PROCEDUREC. INSERT PROCEDUED. DELETE PROCEDUE2、创建存储过程的语句是()。

A. ALTER PROCEDUREB. DROP PROCEDUREC. CREATE PROCEDUED. INSERT PROCEDUE3、下⾯()组命令,将变量count值赋值为1。

A.DECLARE @countSELECT @count=1B.DIM count=1C.DECLARE count SELECT count=1D.DIM @count SELECT @count=14、在SQL Server 中删除存储过程⽤()。

A.ROLLBACK B. DROP PROC C.DELALLOCATE D. DELETE PROC10.在SQL Server 编程中,可使⽤()将多个语句捆绑。

A.{} B. BEGIN-END C.( ) D. [ ]⼆、填空题1、在T-SQL编程语句中,WHILE结构可以根据条件多次重复执⾏⼀条语句或⼀个语句块,还可以使⽤()和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执⾏。

2、存储过程是存放在()上的预先定义并编译好的T-SQL语句。

3、游标是系统为⽤户开设的⼀个(),存放SQL语句的执⾏结果第9章关系查询处理和查询优化课后作业:P275,2题答案:12、事务的原⼦性是指。

A.事务中包括的所有操作要么都做,要么都不做B.事务⼀旦提交,对数据库的改变是永久的C.⼀个事务内部的操作及使⽤的数据对并发的其他事务是隔离的D.事务必须是使数据库从⼀个⼀致性状态变到另⼀个⼀致性状态3、事务的⼀致性是指。

A.事务中包括的所有操作要么都做,要么都不做B.事务⼀旦提交,对数据为的改变是永久的C.⼀个事务内部的操作及使⽤的数据对并发的其他事务是隔离的D.事务必须是使数据库从⼀个⼀致性状态变到另⼀个⼀致性状态4、事务的隔离性是指。

数据库系统工程师教程


12.3数据库的备份与恢复 3
3
2、数据库备份
3、数据库恢复
12.4数据库的安全性与完整性 2
第十三章:云计算与大数据处理
13.1云计算基础知识 5 历年真题 2
13.2大数据处理基础知识 3
第十四章:数据库主流应用技术
14.1分布式数据库 5 14.2Web与数据库 5 14.3XML与数据库 3 14.4面向对象数据库 4 14.5大数据与数据库 4 14.6NewSQL数据库 2
保安
本节主要考点: 1、对称加密技术 4 2、非对称加密技术 3、数字签名和数字加密 4、计算机可靠性
2
第二章:程序语言基础知识
本节主要考点:
2.1程序语言概述 2
1、编译程序和解释程序
2、程序语言的数据成分和控制成分 2 2.2程序语言翻译基础 3 3、编译程序的过程
4、中缀、前缀与后缀表达式
第三章:数据结构与算法
10.2系统分析基础知识 4
10.3系统设计基础知识 4 10.4系统测试基础知识 3
自看指南
10.5系统运行与维护基础知识 2
10.6软件开发方法新进展 3
第十五章:标准化和知识产权基础知识
15.1标准化基础知识 5 主要考点
15.2知识产权基础知识 4
2 1
第六章:数据库技术基础
6.1基本概念 5 6.2数据模型 4 6.3数据存储和查询 2 6.4数据仓库和数据挖掘基础知识
主要考点: 1、DBMS的功能和特点 2、数据库系统的三级模式结构 2 3、数据模型 4、E-R图
2
第七章:关系数据库
7.1关系数据库概述
主要考点: 1、相关名词 3 2、关系数据库模式 1 3、关系的三种类型 4、关系的完整性约束

《数据库原理与应用》课程教学大纲

《数据库原理与应用》课程教学大纲一、课程基本信息(一)课程代码:(二)课程中文名称:数据库原理与应用(三)课程英文名称:Principle and Application of Database(四)课程性质:专业基础课程(五)适用专业:计算机科学与技术、软件工程、大数据与人工智能(六)开课单位:(七)教学时间安排:第 3学期(八)先修课程:计算机基础、高级语言程序设计(九)后续课程:网络程序开发、大数据技术原理及应用(十)学时、学分:32学时、2学分二、课程目标《数据库原理与应用》是计算机类各专业的必修课,是一门重要的专业基础课。

原理部分以数据库技术的实际应用为目标,重点讲述数据库的基础知识、基本原理和基本技术;应用部分以数据库应用开发为主,介绍数据库应用系统的设计方法、步骤和范例。

通过本课程学习,使学生在掌握数据库系统基本概念、原理的基础上,能熟练使用SQL语言在某一个具体的数据库管理系统上进行应用操作;掌握数据库原理、方法及步骤,具有数据库设计以及应用数据库管理系统的基本能力。

达成支撑专业学习成果相应的指标点。

课程目标对学生能力要求如下:课程目标1. 逐步掌握科学的学习方法,阅读并理解数据库相关教材、参考书和科技文献,不断地扩展知识面,增强独立思考的能力,更新知识结构。

课程目标2. 掌握关系代数语言的使用;能够熟练使用SQL语句进行数据操纵和数据定义。

课程目标3. 了解关系模型的基本概念;掌握关系数据库规范化理论,能够利用分解算法将关系模式进行合理的分解;掌握数据库设计方法和数据库系统维护的相关概念和应用。

课程目标4. 能够在MySQL平台环境和开发工具下使用SQL语句进行数据操纵和数据定义。

课程目标5. 具备良好的沟通、表达和团队协作能力。

三、教学内容与课程目标的关系第1章数据库系统的基本原理1.章节学时:1学时2.教学内容:(1)数据库系统概述(数据库系统概念;数据管理技术的产生和发展;数据库系统组成)。

第8章--数据完整性和安全性

最新课件 4
8.1.2 数据完整性 根据数据完整性措施所作用的数据库对象和范
围不同,可以将数据完整性分为以下几种: 1、实体完整性 又称为行完整性。它把表中的每行都看作一个
实体,要求所有行都具有惟一标识。在SQL Server中,可以通过建立PRIMARY KEY约束、 UNIQUE约束等措施来实施实体完整性。例如, 对“客户信息表”,客户编号就可以作为主键, 每个客户的编号能够惟一地确定该客户对应的 记录信息,那么在输入数据时,则不能有相同 客户编号的记录存在,通过对客户编号这一字 段建立主键约束,可实现“客户信息表”的实 体完整性。
最新课件 13
8.3 触发器及其创建
1、触发器的功能 触发器是一种特殊类型的存储过程,与表紧密相连。
当用户修改表中的数据时,触发器将自动执行,使用 触发器可以实现多个表间数据的一致性。一般可以使 用触发器完成如下功能: (1)级联修改数据库中相关的表。如在产品信息数 据库中有两个表:客户表cust_table 和订单表 order_table。订单表order_table中包含订单信息和 有业务往来的客户信息。如果出于某一需要删除了客 户表cust_table中的某一客户信息,那么在订单表 order_table中所有与该客户有关的记录都应该做相应 的调整。
VALUES (‘1001’, ‘JCP Inc.’, 500000, ‘张言’, ‘53412573’)
GO
最新课件 20
用户在创建触发器以后的使用过程中, 可能会发现使用触发器虽然可以保证数 据引用的完整性,但却会影响系统性能; 有时要将触发器升级为新版本,这都需 要删除触发器,可以在图8.2所示的“定义 触发器的界面”中选定相应的触发器名 称后,单击“删除”按钮,也可以用TSQL语句删除。删除触发器的语句为:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例8.3 创建带输入参数的存储过程
查询某家银行的贷款情况
create proc p_in_loan @bankname nvarchar(10) --输入参数 as select ename,ldate,lamount,bname from bankt b join loanT L on b.bno=l.Bno join legalEntityT le on le.Eno=l.Eno where bname = @bankname go
--执行存储过程 exec p_loan
执行存储过程-exec
语法格式: EXEC[UTE] 存储过程名
[@参数名=]参数值|@变量名[output]|[default]
@参数名:存储过程参数名,如果使用了@参数名 =参数值,则后续参数都必须使用此格式,可省 参数值:指定给存储过程的参数值,可取缺省值 @变量名:用来存储参数或返回参数的变量 Output:指定存储过程返回一个参数,该存储过 程参数定义时必须为output Default:取参数定义时的默认值
执行
使用execute执行 在SSMS中执行
8.2.1 使用T-SQL语句创建和执行存储过程
语法格式: 语法格式: CREATE PROC [EDURE] 存储过程名称 [@参数名 类型 [=默认值] [OUTPUT]] [,…n.] [WITH Encryption] AS SQL 语句序列
8.2.1 使用T-SQL语句创建和执行存储过程
执行
Sp_helptext p_e_loan ---显示已加密 通过ssms查看
例8.9 根据不同情况执行执行不同语句
create table book( bookno int primary key, bookname nvarchar(10), num int ) create proc p_in_book @bookNo int, @bookName nvarchar(10), @num int as if exists (select num from book where bookno=@bookno) update book set num=num +@num where bookno = @bookNo else insert into book values(@bookNo,@bookName,@num) --执行 exec p_in_book 1,'数据库应用技术',2 select * from book exec p_in_book 1,'数据库应用技术',3 select * from book
例8.8 加密
with encryption
create procedure p_e_loan with encryption as select ename,ldate,lamount,bname from bankt b join loanT l on b.bno=l.Bno join legalEntityT le on le.Eno = l.eno where bname = '工商银行北京A支行‘
例8.11 调用sp_in_loan
declare @r int exec sp_in_loan 'a','b',300,1,@r output print @r if @r=0 print '插入成功' else if @r=1 print '银行不存在' else if @r =2 print '企业不存在'
--执行
exec p_inde_loan exec p_inde_loan '工商银行北京A支行' exec p_inde_loan default
例8.5 创建带多个输入参数的存储过程
查询某个法人在某个银行的贷款情况
create proc p_MulIn_loan @LEName nvarchar(15), @bankName nvarchar(10) as select ename,bname,ldate,lamount from bankt b join loanT L on b.bno=l.Bno join legalEntityT le on le.Eno=l.Eno where (eName=@leName) and (bName = @bankName ) go
--执行该存储过程
exec p_in_loan @bankname='工商银行北京A支行‘ 或 exec p_in_loan '工商银行北京A支行'
例8.4 创建带输入参数默认值的存储过程
指定银行默认值为工商银行北京分行
create proc p_inde_loan @bankname nvarchar(10)='工商银行北京分行' --输入参数 as select ename,ldate,lamount,bname from bankt b join loanT L on b.bno=l.Bno join legalEntityT le on le.Eno=l.Eno where bname = @bankname go
保证系统的安全性
可以不授予用户访问存储过程中涉及的表的权限,只授予 执行存储过程的权限。
8.1 存储过程概述—分类
用户自定义存储过程 系统存储过程
Sp_helptext, Sp_rename, sp_helpdb等
扩展存储过程
后续版本将去掉该功能
8.2 创建和执行存储过程
创建存储过程
T-SQL:Create procedure 模板
8.1 存储过程概述—特点
执行速度快
存储过程创建时就经过语法检查和性能优化,执行时不必 重复检查,第一次调用后驻留内存;
模块化的程序设计: 模块化的程序设计:存储过程创建一次,可重复 调用; 减少网络通信量
存储过程作为一个独立的单元使用,一条语句即可实现存 储过程中的大量的SQL语句,减少了反复连接访问网络;
例8.10 插入贷款表
create proc sp_in_loan @bname char(5), @ename char(3), @lamount int, @lterm int, @res int output as begin if @lterm<=0 set @lterm = 1 if @lterm>10 set @lterm =10 declare @bno char(5) declare @eno char(3) select @bno = bno from bankt where bname= @bname select @eno =eno from legalEntityT where Ename=@ename if @bno is null --'银行不存在' begin set @res= 1 return end if @eno is null --'企业不存在' begin set @res= 2 return end insert into loanT values(@eno,@bno,GETDATE(),@lamount,@lterm) set @res=0 end
取存储过程的返回值
可以在存储过程中返回整数值 在存储过程中使用return返回的值的取得是 通过Exec @变量名=<存储过程名> 参数来 取得的
例8.12 比较放贷金额
create proc P_比较放贷金额 @bname1 nvarchar(15), @bname2 nvarchar(15) as begin declare @s1 int,@s2 int select @s1 = SUM(lamount) from loanT join bankt on loant.Bno = bankt.bno and bname = @bname1 select @s2 = SUM(lamount) from loanT join bankt on loant.Bno = bankt.bno and bname = @bname2 if @s1>@s2 return 1 else return 0 end --执行 declare @res int exec @res=P_比较放贷金额 '工商银行北京A支行','建设银行上海A支行' If @res=1 print ‘大’ else print ’小‘
Default:为参数指定默认值 Output:指定参数为输出参数 With Encryption:加密,不输出文本
例8.1 创建简单的存储过程
查询工商银行北京A支行的贷款情况
create proc p_loan as select ename,ldate,lamount,bname from bankt b join loanT L on b.bno=l.Bno join legalEntityT le on le.Eno=l.Eno where bname = '工商银行北京A支行'
---执行
exec p_MulIn_loan '浦庆石化有限公司','建设银行上海A支行' exec p_MulIn_loan @bankName = '交通银行北京分行‘, @LEName='浦庆石化有限公司'
例8.5 加提示的存储过程
当银行或法人不存在时,提示用户
create proc p_MulIn_loan1 @LEName nvarchar(15), @bankName nvarchar(10) as if not exists(select ename from legalEntityT where ename=@LEName) print '该法人不存在' else if @bankName not in(select bname from bankt) print '该银行不存在' else select ename,bname,ldate,lamount from bankt b join loanT L on b.bno=l.Bno join legalEntityT le on le.Eno=l.Eno where (eName=@leName) and (bName = @bankName )
相关文档
最新文档