写一个存储过程,要求如下“Give the name of user, find the three books recently borrowed by the users and store them into the temporary table. ”
时间: 2024-03-13 08:45:39 浏览: 9
好的,以下是符合您要求的存储过程:
```
CREATE PROCEDURE get_recent_borrowed_books(@username VARCHAR(50))
AS
BEGIN
DECLARE @temp_table TABLE (
book_id INT,
book_name VARCHAR(100),
borrow_date DATETIME
)
INSERT INTO @temp_table (book_id, book_name, borrow_date)
SELECT TOP 3 b.book_id, b.book_name, br.borrow_date
FROM books b
INNER JOIN book_borrows br ON b.book_id = br.book_id
INNER JOIN users u ON br.user_id = u.user_id
WHERE u.username = @username
ORDER BY br.borrow_date DESC
SELECT * FROM @temp_table
END
```
该存储过程接收一个用户名作为参数,并创建一个临时表来存储最近被该用户借阅的三本书的信息。然后,通过内部连接 books,book_borrows 和 users 表,找到用户最近借阅的三本书,并按照借阅日期倒序排列,将其插入到临时表中。最后,从临时表中选择所有行并将其返回。