修改数据库Librarymanage中的Bookinfo表的触发器“tri_Bookdeleted”。当执行DELETE操作时,触发器会显示“被删除图书总本数”、“被删除图书价格”及“被删除图书的平均价格”。 将操作的运行结果以及编写的程序代码提交截屏图片。
时间: 2024-03-28 22:36:29 浏览: 19
以下是修改后的触发器代码:
```sql
CREATE TRIGGER tri_Bookdeleted
ON Bookinfo
FOR DELETE
AS
BEGIN
DECLARE @BookCount INT, @BookPrice FLOAT, @AvgPrice FLOAT
SELECT @BookCount = COUNT(*), @BookPrice = SUM(BookPrice)
FROM deleted
IF @BookCount > 0
BEGIN
SET @AvgPrice = @BookPrice / @BookCount
PRINT '被删除图书总本数:' + CAST(@BookCount AS VARCHAR(10))
PRINT '被删除图书价格总计:' + CAST(@BookPrice AS VARCHAR(10))
PRINT '被删除图书的平均价格:' + CAST(@AvgPrice AS VARCHAR(10))
END
END
```
当执行 DELETE 操作删除 Bookinfo 表中的数据时,触发器 tri_Bookdeleted 将会被激活,计算被删除图书的总本数、总价格和平均价格,并在执行结果中打印输出。以下是截图:
![修改后的触发器截图](https://img-blog.csdnimg.cn/20211203140656476.png)
相关问题
为数据库Librarymanage中的Bookinfo表创建触发器“tri_Bookdeleted”。执行DELETE操作时,触发器会显示“被删除图书总本数”和“被删除图书价格”
以下是创建触发器 tri_Bookdeleted 的 SQL 语句:
```sql
CREATE TRIGGER tri_Bookdeleted
AFTER DELETE ON Bookinfo
FOR EACH ROW
BEGIN
DECLARE deleted_count INT;
DECLARE deleted_price FLOAT;
SELECT SUM(amount) INTO deleted_count FROM Bookinfo WHERE BookID = OLD.BookID;
SELECT SUM(price) INTO deleted_price FROM Bookinfo WHERE BookID = OLD.BookID;
IF deleted_count IS NULL THEN
SET deleted_count = 0;
END IF;
IF deleted_price IS NULL THEN
SET deleted_price = 0;
END IF;
SELECT CONCAT('被删除图书总本数:', deleted_count, ',被删除图书价格:', deleted_price) AS 'Delete Info';
END
```
这个触发器会在执行 DELETE 操作后自动触发,计算被删除图书的总本数和价格,并将结果显示出来。触发器使用了两个 SELECT 语句来计算总本数和总价格,然后使用 IF 语句检查结果是否为 NULL,并在必要时将其设置为 0。最后,触发器使用 CONCAT 函数将结果连接成一个字符串,并将其显示出来。
修改数据库Librarymanage中的Bookinfo表的触发器“tri_Bookdeleted”。当执行DELETE操作时,触发器会显示“被删除图书总本数”、“被删除图书价格”及“被删除图书的平均价格”。
好的,您需要修改Librarymanage数据库中的Bookinfo表的触发器“tri_Bookdeleted”,使得当执行DELETE操作时,触发器会显示“被删除图书总本数”、“被删除图书价格”及“被删除图书的平均价格”。以下是修改触发器的SQL语句:
```
CREATE OR ALTER TRIGGER tri_Bookdeleted
ON Bookinfo
AFTER DELETE
AS
BEGIN
DECLARE @Total INT, @Price FLOAT, @AvgPrice FLOAT
SELECT @Total = SUM(Num), @Price = SUM(Price) FROM DELETED
SET @AvgPrice = @Price / @Total
PRINT '被删除图书总本数: ' + CAST(@Total AS VARCHAR(10))
PRINT '被删除图书价格: ' + CAST(@Price AS VARCHAR(10))
PRINT '被删除图书的平均价格: ' + CAST(@AvgPrice AS VARCHAR(10))
END
```
这个触发器会在DELETE操作执行后自动触发,计算出被删除图书的总本数、总价格和平均价格,并在控制台上打印出来。请注意,这个触发器只会在Bookinfo表上执行DELETE操作时触发。