创建借阅卡信息表 (脚本文件以2_1_createTBL.sql为名保存于考试文件夹) 借阅卡信息表readers 列名 数据类型 允许空值 说明 BorrowerID Varchar(10) × 借阅卡编号,主键 XiID Char(4) √ 系编号 GradeID Char(2) √ 年级编号 readerName Varchar(10) × 借阅者姓名 StudentNum Char(10) × 借阅者学号
时间: 2024-01-21 07:04:24 浏览: 82
好的,你的问题是如何创建借阅卡信息表readers,它有哪些列和数据类型?
以下是创建借阅卡信息表readers的SQL脚本:
```
CREATE TABLE readers (
BorrowerID VARCHAR(10) NOT NULL PRIMARY KEY,
XiID CHAR(4),
GradeID CHAR(2),
readerName VARCHAR(10) NOT NULL,
StudentNum CHAR(10) NOT NULL
);
```
该表包含的列和数据类型如下:
- BorrowerID:VARCHAR(10),不允许为空,借阅卡编号,主键
- XiID:CHAR(4),允许为空,系编号
- GradeID:CHAR(2),允许为空,年级编号
- readerName:VARCHAR(10),不允许为空,借阅者姓名
- StudentNum:CHAR(10),不允许为空,借阅者学号
相关问题
(3)创建借阅书刊信息表borrow (脚本文件以2_3_createTBL.sql为名保存于考试文件夹) 借阅书刊信息表borrow 列名 数据类型 允许空值 说明 BookID Char(10) × 借阅书刊编号,组合主键,外键 BorrowerID Char(10) × 借该书的借阅卡ID,组合主键,外键 Loan Char(2) √ 状态 BorrowerDate Datetime √ 该书被借阅的时间
好的,你的问题是如何创建借阅书刊信息表borrow,它有哪些列和数据类型?
以下是创建借阅书刊信息表borrow的SQL脚本:
```
CREATE TABLE borrow (
BookID CHAR(10) NOT NULL,
BorrowerID CHAR(10) NOT NULL,
Loan CHAR(2),
BorrowerDate DATETIME,
PRIMARY KEY (BookID, BorrowerID),
FOREIGN KEY (BookID) REFERENCES books (BookID),
FOREIGN KEY (BorrowerID) REFERENCES readers (BorrowerID)
);
```
该表包含的列和数据类型如下:
- BookID:CHAR(10),不允许为空,借阅书刊编号,组合主键,外键
- BorrowerID:CHAR(10),不允许为空,借该书的借阅卡ID,组合主键,外键
- Loan:CHAR(2),允许为空,状态
- BorrowerDate:DATETIME,允许为空,该书被借阅的时间
sqlServer,在借阅表上创建instead of触发器ins_借阅,检查插入读者编号是否存在于读者表中,否则禁止插入该记录,并给予提示信息。
好的,下面是在SQL Server中创建instead of触发器ins_借阅的代码,实现检查插入读者编号是否存在于读者表中,否则禁止插入该记录,并给予提示信息:
```sql
CREATE TRIGGER ins_借阅
ON 借阅
INSTEAD OF INSERT
AS
BEGIN
IF NOT EXISTS(
SELECT 1
FROM 读者
WHERE 读者编号 = (SELECT 读者编号 FROM inserted)
)
BEGIN
RAISERROR('该读者编号不存在,请检查后再试!', 16, 1)
ROLLBACK TRANSACTION
RETURN
END
INSERT INTO 借阅(读者编号, 书籍编号, 借阅日期)
SELECT 读者编号, 书籍编号, 借阅日期 FROM inserted
END
```
这个触发器会在插入借阅表时被触发。它会首先检查读者表中是否存在与插入记录中的读者编号相同的记录。如果存在,则会将该记录插入到借阅表中。如果不存在,则会抛出一个错误信息,提示用户该读者编号不存在,并且回滚当前事务,以禁止插入该记录。
阅读全文