当前位置: 首页 > 面试题库 >

什么是触发器?SQL Server 2000有什么不同类型的触发器?

陈昂熙
2023-03-14
本文向大家介绍什么是触发器?SQL Server 2000有什么不同类型的触发器?相关面试题,主要包含被问及什么是触发器?SQL Server 2000有什么不同类型的触发器?时的应答技巧和注意事项,需要的朋友参考一下

让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA 的INSTEAD-OF-UPDATE 触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。

AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?

这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。

另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。

对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?

对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

你可以用什么来确保表格里的字段只接受特定范围里的值?

这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。

触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。

如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。

返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数

 类似资料:
  • 主要内容:触发器的优缺点,MySQL 支持的触发器MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具。不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工启动,而是通过对数据表的相关操作来触发、激活从而实现执行。比如当对 student 表进行操作(INSERT,DELETE 或 UPDATE)时就会激活它执行。 触发器与数据表关

  • 问题内容: 我的代码中有一个。我已添加。但是它还是没有被触发。我已经尝试了很多时间,但是没有找到解决方案。 但是控制台中没有任何内容。请建议我我在做什么错。 问题答案: FocusListener不是JComboBox的适当监听器,另外一个监听器可以创建无限循环(尤其是可编辑的JComboBox), 的FocusListener是异步的,有时是太难捕捉事件是正确的订单特别是在案件JComponen

  • 我需要测试一个服务类,但是当我试图模拟dao类时,它没有被触发,因此不能使用ThenReturn()。 我认为问题是因为我在服务类(Spring MVC 3.1)中为我的Dao和@Autowired使用了一个接口: 接口: 执行情况: 成功了!

  • 问题内容: 它的用途是什么? 问题答案: 它将语句定界符从更改为。这样一来,您就可以在触发器定义中编写代码,而无需MySQL客户端将其误解为已完成操作。 请注意,改回来时是,而不是我见过的人们尝试做的。

  • 问题内容: 我对Java中的垃圾回收如何工作感到有些困惑。 我得到一个对象,当它不再有实时引用时,就可以进行垃圾回收,但是如果它引用了实时对象又该怎么办? 可以说我有一个节点集合,再次引用了更多节点 现在,如果我删除列表,则应该对节点cd和e进行垃圾回收。节点e没有更多引用,而节点c和d具有循环引用。 但是节点a呢?会被垃圾收集吗? 节点b是否具有外部实时引用会有所不同吗?假设节点b从另一个地方引

  • 问题内容: 我当时在考虑在我的Jenkins构建工作中使用Groovy脚本,因为我有一些条件要检查,可能需要访问Jenkins API。 是否有可能从Groovy脚本中找出触发构建的人员或原因?SCM更改,另一个项目或用户。我刚刚开始阅读有关Groovy和Jenkins API的文章。 我想检查以下条件并相应地构建。一些伪代码: 该项目应建立在每一个SCM更改的基础上,但是只有在版本增加的情况下才