sql server 2008-数据库、触发器、三级数据库选择题,求大神解答

问题描述

数据库、触发器、三级数据库选择题,求大神解答

(12) 在SQL Server 2008中,设表T(a, b)上建有如下触发器:

CREATE TRIGGER tri_update ON T FOR UPDATE AS

   IF EXISTS(SELECT * FROM inserted

               WHERE b not between 0 and 100)

     ROLLBACK

设表T中已有数据:('a01',90),如果执行语句:
UPDATE T SET b = 100 WHERE a = 'a01'

则触发器临时工作表及执行完该语句后表T中的数据为()
A.
T表:('a01',100)
INSERTED表:('a01',90)
DELETED表:('a01',100)
B.
T表:('a01',90)
INSERTED表:('a01',90)
DELETED表:('a01',100)
C.
T表:('a01',100)
INSERTED表:('a01',100)
DELETED表:('a01',90)
D.
T表:('a01',90)
INSERTED表:('a01',100)
DELETED表:('a01',90)
敲字不容易呀,麻烦各位大神解答一下,详细点更好,多谢了

解决方案

 C

用FOR关键字定义的触发器为后触发型触发器,即只有在引发触发器执行的语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后才执行触发器。其中INSERTED表用于存储INSERT和UPDATE语句所影响行的新值的副本,DELETED表用于存储DELETE和UPDATE语句所影响行的旧值的副本。在执行“UPDATE T SET b=100 WHERE a=ˊa01ˊ”之后,T表为:(ˊa01ˊ,100),INSERTED表内容变为:(ˊa01 ˊ,100),DELETED表内容变为:(ˊa01 ˊ,90)。继续判断约束检查“SELECT*FROM inserted WHERE b not between o and l00”,因为INSERTED表中的b等于l00,因此约束不成立,故触发器不执行。
时间: 2024-08-29 03:36:16

sql server 2008-数据库、触发器、三级数据库选择题,求大神解答的相关文章

sql server-sqlserver跨服务器更新数据出错,求大神解答

问题描述 sqlserver跨服务器更新数据出错,求大神解答 sqlserver在跨服务器更新数据时报这个错,图片中的日文可以先忽略,有遇到报图片中相同英文内容的大神给解答解答 ![图片说明](http://img.ask.csdn.net/upload/201509/27/1443353882_746795.png) 解决方案 这看上去根本不是sql server的错误,而是Silverlight的错误.你的Silverlight丢出了异步的错误,没有捕获到.具体要看你的代码. 解决方案二:

sql server 2008 r2 触发器配置

问题描述 sql server 2008 r2 触发器配置 我按照书上的编写了触发器,但是总是提示语法错误. create trigger Trig_deny on 系别信息 after insert as begin raiserror('该操作不允许执行,拒绝插入信息!') end 提示:raiserror('该操作不允许执行,拒绝插入信息!') 这行 ')' 附近有语法错误. 请教各位大神怎么办啊? 解决方案 SQL Server 2008 R2镜像配置 一.准备工作 1.三台装有sql

奇怪的现象-SQL Server 2008 r2 查询效率问题(求关注求关注求关注)

问题描述 SQL Server 2008 r2 查询效率问题(求关注求关注求关注) 我有一张表,共有56个字段.发现以下情况: 1.我在我的开发机执行sql语句 set statistics time on SELECT * FROM [eShop].[dbo].[Product] (多次执行,时间平均在90-100ms) 2.在服务器上有相同的数据库,相同的表,相同的内容.执行同样SQL语句,执行结果为: (多次执行,时间平均在250ms) 3.在我的开发机连服务器的数据库,执行该语句,执行结

sql server-跨数据库同步数据的问题 求大神指点

问题描述 跨数据库同步数据的问题 求大神指点 我有两台服务器 一台是以sql身份验证用户名密码登陆的 内有两个在持续写入新数据的表1和2 两个表同时写入 具有相同的格式为datetime2(7)的列为主键 没有id列 另一台服务器是以windows身份验证登陆的 有一个表3 现在想要把表1的A B C三列的值.表2的D E两列的值同时分别插入到表3的b d f和c e列当中并且之后连续的将表1表2新增的数据插入 应该如何实现 解决方案 写两套连接 创建两个sqlsession 然后对两个不同库进

oracle 触发器-求大神解答oracle数据库关于触发器集联删除的问题

问题描述 求大神解答oracle数据库关于触发器集联删除的问题 做期末项目,做到了触发器集联删除这块,我想删除course表(父表)里的数据,必须先删除teacou(子表)中的cid,cid与course里的id有外键关系.删除子表后我又不能找到父表里的id了,怎么办啊,请大神帮忙看看,谢谢啦! 解决方案 http://www.2cto.com/database/201212/178007.html

数据库设计-求大神解答oracle数据库关于触发器集联删除的问题

问题描述 求大神解答oracle数据库关于触发器集联删除的问题 做期末项目,做到了触发器集联删除这块,我想删除course表(父表)里的数据,必须先删除teacou(子表)中的cid,cid与course里的id有外键关系.删除子表后我又不能找到父表里的id了. select teaCou.cId from teaCou where teacou.tId=:old.id有时候查出来两个结果,select into语句不能用, 怎么办啊,请大神帮忙看看,谢谢啦! 解决方案 http://www.2

实现数据库查询功能,跪求大神

问题描述 实现数据库查询功能,跪求大神 想做一个数据查询界面,并连接数据库.因为是大学的时候学过,现在过了好几年已经都忘记了.我想知道实现这个,我应该用什么语言,还有用什么软件,因为现在数据在excel中需要转换成什么.谢谢啦 解决方案 excel可以转成csv格式,然后导入数据库,既然是windows,那么数据库就用sql server 开发语言,windows上那么就用C#好了 解决方案二: excel可以转成csv格式,然后导入数据库,既然是windows,那么数据库就用sql serve

数据库-小白 求大神解答 eclipse连接mysql语句改成连接sql2008

问题描述 小白 求大神解答 eclipse连接mysql语句改成连接sql2008 package library; import javax.swing.*; import java.sql.*; public class Database{ private String url = "jdbc:mysql://localhost/library";// //private String url = "jdbc:mysql://localhost:3306/library&

oracle ibatis map-xml格式的报文如何插入数据库??求大神解答?难道没高手知道问题出在哪儿//???

问题描述 xml格式的报文如何插入数据库??求大神解答?难道没高手知道问题出在哪儿//??? 我将xml格式的一个请求报文赋值给一个变量,然后使用ibatis的map印射给一个字段,其他的字段都能插入进去,但是就这个报文字段插入不了,关键是sql没报错?求大神解答,这个报文在map之前能打印出来