- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sql面试资料打印
数据库面试题及答案
??1. 存储过程和函数的区别
存储过程需要单独执行; 函数可以随处调用。 存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL
语句的集合。 可以创建一个过程供永久使用??,或在一个会话中临??时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。 用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的??操作。?? 与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行。
自定义函数 有且只有一个返回值,就像普通的函数一样,可以直接在表达式中嵌入调??用。 存储过程?? 可以没有返回值,也可以有任意个输出参数,必须单独调用。
1 存储过程不一定非要有返回值 数据库中的函数一定有返回值
2 存储过程在前台语言可以直??接调用 而函数一般要有??sql语句做为载体??
本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。
??函数限制比较多,比如不能用临时表,??只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少
1. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
能返回值或者表对象。 2. ??对于存储过程来说可以返回参数,而函数??只
3. 存储过程一般是作为一个独立的部分来执行(EXEC??执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),
由于函数可以返回一个表对象,因??此它可以在查询语句??中位于FROM关键字的后面。
4. 当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在procedure ??
cache??里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。
2. 事务是什么?
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系??列操作。?? 事务处理可以确保除非事务性
单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部
失败的单元,可以简化错误恢复并使应用程序更加可靠。一??个逻辑工作单元要成??为事务,必须满足所谓的??ACID(原子性、一致性、隔离性和持久性)属性。
3. 游标的作用?如何知道游标已经到了最后?
游标(cursor)是系统为用户开设的一个数据缓冲区,存??放??SQL语句的执行结果。每个游标区都有一个名字。
游标提供了一种对从表中检索出的数据进行操作的灵活手段,??就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。??
借助于游标来进行面向单???条记录的数据处理。游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或??不同的操作,而不是一次对整个结果集进行同一种操作。
主语言是面向记录的,一组主变量一次只??能存放一条记录。仅??使??用主变量并不能完全满??足SQL语句向应用程序输出数据的
要求。嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式,正是游标把作为面向集合的数据库管理系统和面向行??
的程序设计两者联系起来,使两??个数据处理方式能够进行沟通。
关系数据库中的操作会对整个行集起作用。由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行。
这种由语句返回的完整行集称为结??果集。应用程序,特??别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有
效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的对结果集的一种扩展。??
游标的特点是:??
允许定位在结果集的特定行。
从结果集的当前位置检索一行或一部分行。
支持对结果集中当前位置??的行进行数据修改。
为由其他用户对显示在结果集中的??数据库数据所做的更改提供不同级别的可见??性支??持。
提供脚本、存储过程和触发器中用于访问结果集中的数据的 Transact-SQL 语句
在从游标中提取信息后,可以通过判断@@FETCH_STATUS 的值来判断是否到了最??后。当@@FETCH_STAT??US为0的时候,说明提取是成功的,否则就可以认为到了最后。
4. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别
触发器(trigger)??是个特殊的
文档评论(0)