和tempdb数据库中建立了一些表,分别说明在系统重启和建立新的数据库时会发生哪些事情? 答:
2、 (5分)阅读如下程序,首先描述该程序建立了什么对象,然后说明该程序实现了什么
样的约束。
CREATE TRIGGER CheckCity ON 订购单 FOR INSERT,UPDATE AS
DECLARE @city char(10),@citya char(10), @eno char(5) , @sno char(5) SELECT @sno=供应商号,@eno=职工号 FROM inserted IF @sno IS NOT NULL BEGIN
SELECT @city=城市 FROM 仓库 WHERE 仓库号 IN ( SELECT 仓库号 FROM 职工 WHERE 职工号=@eno )
SELECT @citya =城市 FROM 供应商 WHERE 供应商号=@sno IF @city != @citya AND
EXISTS (SELECT * FROM 供应商 WHERE 城市=@city ) BEGIN
ROLLBACK TRANSACTION END END
答:
3、 (10分)设有事务A和B并发执行,两个事务并发执行的时间序列和操作如下表所示:
(2) t2时间事务B的SELECT语句能否及时执行?为什么?
(3) t3时间事务B的SELECT语句能否及时执行?为什么?
(4) t4时间事务A的SELECT语句能否及时执行?为什么?
(5) t5时间事务A的SELECT语句能否及时执行?为什么?
(1) t1时间事务B的SELECT语句能否及时执行?为什么?
4、 (5分)如下命令建立的存储过程用于查询指定仓库订单金额大于指定值的订单数,请
写出调用此存储过程查询“WH1”仓库金额在1200以上的订单数、并输出结果的程序。
CREATE PROCEDURE usp1
@whno char(6),@sum money AS
DECLARE @count int
SELECT @count=COUNT(*) FROM 订购单 WHERE 金额>=@sum AND 职工号 IN
(SELECT 职工号 FROM 职工 WHERE 仓库号=@whno) RETURN @count
答:
六、用SQL语句完成下列操作(本题满分20分,共含5道小题,每小题4分)
根据图1所示订单管理数据库完成SQL查询或操作。
图1 订单管理数据库
1. 查询单价在100元和200元之间的产品信息,结果按单价降序排序。
2. 查询目前没有任何订购单的客户的名称、联系人和电话信息。
3. 列出所有订购信息(查询结果包括产品号、产品名称、规格说明、单价和数量),同时
给出金额合计(所有订购“单价*数量”的合计)。
4. 按产品名称计算每类产品的平均单价。
5. 删除目前没有任何订购的产品记录。