用sqlserver完成下面这题--4. 在表Teacher中创建触发器,实现如果更新了表Teacher中的年龄和工资,则输出’更新了年龄和工资’,如果更新了年龄没有更新工资, --则输出’更新了年龄’,如果更新了工资而没有更新年龄,则输出’更新了工资’,创建完后使用SQL语句把tno为001的年龄加1, --把tno为002的工资加1,把tno为003的年龄和工资都加1,看看结果;
时间: 2024-02-16 19:03:42 浏览: 48
T-SQL语句经典版
您好,以下是实现您所需的SQL Server触发器及测试示例:
1. 创建表Teacher
```sql
CREATE TABLE Teacher
(
tno VARCHAR(10) PRIMARY KEY,
tname VARCHAR(20) NOT NULL,
age INT NOT NULL,
salary DECIMAL(10, 2) NOT NULL
);
```
2. 创建触发器
```sql
CREATE TRIGGER tr_teacher_update
ON Teacher
AFTER UPDATE
AS
BEGIN
IF UPDATE(age) AND UPDATE(salary)
BEGIN
PRINT '更新了年龄和工资';
END
ELSE IF UPDATE(age)
BEGIN
PRINT '更新了年龄';
END
ELSE IF UPDATE(salary)
BEGIN
PRINT '更新了工资';
END
END;
```
3. 测试触发器
```sql
-- 插入测试数据
INSERT INTO Teacher(tno, tname, age, salary)
VALUES('001', '张三', 30, 8000),
('002', '李四', 35, 9000),
('003', '王五', 40, 10000);
-- 更新tno为001的年龄加1
UPDATE Teacher SET age = age + 1 WHERE tno = '001';
-- 更新tno为002的工资加1
UPDATE Teacher SET salary = salary + 1 WHERE tno = '002';
-- 更新tno为003的年龄和工资都加1
UPDATE Teacher SET age = age + 1, salary = salary + 1 WHERE tno = '003';
```
触发器执行结果:
```
更新了年龄
更新了工资
更新了年龄和工资
```
阅读全文