为数据库Librarymanage中的Bookinfo表创建触发器“tri_Bookdeleted”。执行DELETE操作时,触发器会显示“被删除图书总本数”和“被删除图书价格”。 为数据库Librarymanage中的readerinfo表,执行UPDATE操作的触发器,触发器名称为tri_readerupdate,当更新一名读者电话信息时,显示读者姓名、原电话号码和新电话号码。
时间: 2024-03-27 18:41:11 浏览: 16
以下是创建的两个触发器代码:
1. 为 Bookinfo 表创建的 tri_Bookdeleted 触发器:
```sql
CREATE TRIGGER tri_Bookdeleted
ON Bookinfo
FOR DELETE
AS
BEGIN
DECLARE @BookCount INT, @BookPrice FLOAT
SELECT @BookCount = COUNT(*), @BookPrice = SUM(BookPrice)
FROM deleted
IF @BookCount > 0
BEGIN
PRINT '被删除图书总本数:' + CAST(@BookCount AS VARCHAR(10))
PRINT '被删除图书价格总计:' + CAST(@BookPrice AS VARCHAR(10))
END
END
```
当执行 DELETE 操作删除 Bookinfo 表中的数据时,触发器 tri_Bookdeleted 将会被激活,计算被删除图书的总本数和总价格,并在执行结果中打印输出。
2. 为 readerinfo 表创建的 tri_readerupdate 触发器:
```sql
CREATE TRIGGER tri_readerupdate
ON readerinfo
FOR UPDATE
AS
BEGIN
DECLARE @Name NVARCHAR(50), @OldPhone NVARCHAR(20), @NewPhone NVARCHAR(20)
SELECT @Name = i.Name, @OldPhone = d.Phone, @NewPhone = i.Phone
FROM inserted i
INNER JOIN deleted d ON i.ReaderID = d.ReaderID
IF @OldPhone <> @NewPhone
BEGIN
PRINT '读者姓名:' + @Name
PRINT '原电话号码:' + @OldPhone
PRINT '新电话号码:' + @NewPhone
END
END
```
当执行 UPDATE 操作更新 readerinfo 表中的数据时,触发器 tri_readerupdate 将会被激活,获取读者姓名、原电话号码和新电话号码,并在执行结果中打印输出。