使用SQL语句实现创建函数fn_delsell,实现根据bookid删除交易数据;数据库名:bookstore
时间: 2024-03-12 07:42:59 浏览: 64
好的,以下是创建函数 `fn_delsell` 的 SQL 语句:
```
CREATE FUNCTION fn_delsell(@bookid INT)
RETURNS INT
AS
BEGIN
DECLARE @result INT;
DELETE FROM bookstore.sell WHERE bookid = @bookid;
SET @result = @@ROWCOUNT;
RETURN @result;
END
```
这个函数接受一个 `bookid` 参数,并根据该参数删除 `sell` 表中对应的交易数据。使用 `@@ROWCOUNT` 函数获取删除的行数,并将其保存到变量 `@result` 中,最后将 `@result` 返回。
使用方法:
```
SELECT dbo.fn_delsell(1); -- 删除 bookid 为 1 的交易数据
```
相关问题
-- 1.创建函数fn_getauthor,实现根据书名返回作者;——library00 -- 2.创建函数fn_delsell,实现根据bookid删除交易数据;——bookstore -- 3.创建函数`fn_getmoviename`,实现根据演员姓名查找其出演的第一步电影名称;- cinema_db
好的,你的第一个问题是关于创建函数的。那我来回答一下:
1.函数fn_getauthor的实现如下:
```sql
CREATE FUNCTION fn_getauthor(book_name VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE author_name VARCHAR(100);
SELECT author INTO author_name FROM library00 WHERE book = book_name;
RETURN author_name;
END
```
2.函数fn_delsell的实现如下:
```sql
CREATE FUNCTION fn_delsell(book_id INT)
RETURNS INT
AS
BEGIN
DELETE FROM bookstore WHERE bookid = book_id;
RETURN @@ROWCOUNT;
END
```
3.函数fn_getmoviename的实现如下:
```sql
CREATE FUNCTION fn_getmoviename(actor_name VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE movie_name VARCHAR(100);
SELECT TOP 1 movie INTO movie_name FROM cinema_db WHERE actor = actor_name;
RETURN movie_name;
END
```
以上三个函数分别实现了根据书名返回作者、根据bookid删除交易数据以及根据演员姓名查找其出演的第一步电影名称。希望能对你有所帮助!
在pubs数据库中创建tb_bookinfo表,授予class用户查询tb_bookinfo表及修改bookID字段的权限,并允许该用户将此权限授予其他用户。 要求:创建pubs数据库可用SSMS实现,其余用T-SQL语句实现
好的,以下是在 "pubs" 数据库中创建名为 "tb_bookinfo" 的表,授予 "class" 用户查询和修改 "bookID" 字段权限,并允许该用户将此权限授予其他用户的步骤:
1. 打开 SQL Server Management Studio,连接到您的数据库实例。
2. 在 "新建查询" 窗口中选择 "pubs" 数据库。
3. 在 "对象资源管理器" 中右键单击 "Tables" 文件夹,选择 "新建表"。
4. 在 "新建表" 窗口中输入以下表结构:
```sql
CREATE TABLE tb_bookinfo (
bookID INT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
author VARCHAR(50) NOT NULL,
price MONEY NOT NULL
);
```
5. 点击 "保存" 按钮,为该表命名为 "tb_bookinfo"。
6. 在 "对象资源管理器" 中展开 "Security" 文件夹,右键单击 "Roles" 文件夹,选择 "新建" -> "角色"。
7. 在 "新建角色" 窗口中输入角色名称 "book_role",点击 "确定"。
8. 在代码窗口中输入以下 T-SQL 代码,授予 "class" 用户查询和修改 "bookID" 字段权限:
```sql
USE pubs;
GO
GRANT SELECT, UPDATE(bookID) ON tb_bookinfo TO class;
GO
```
9. 在代码窗口中输入以下 T-SQL 代码,允许 "class" 用户将此权限授予其他用户:
```sql
USE pubs;
GO
GRANT GRANT OPTION ON tb_bookinfo TO class;
GO
```
10. 点击 "执行" 按钮,等待语句的执行结果。
现在,"class" 用户已经具有查询 "tb_bookinfo" 表和修改 "bookID" 字段的权限,并且可以将此权限授予其他用户。请注意,为了保证安全性,建议您不要将普通用户添加到具有太高权限的角色中,以避免给数据库带来潜在的安全风险。
阅读全文