Initial commit
This commit is contained in:
37
Homework/Homework250417/Work1.sql
Normal file
37
Homework/Homework250417/Work1.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
Use Homework250417
|
||||
Go
|
||||
CREATE TABLE Employee(
|
||||
EmployeeID INT PRIMARY KEY,
|
||||
Name NVARCHAR(20),
|
||||
Age INT,
|
||||
Salary INT,
|
||||
);
|
||||
Go
|
||||
/* 删除员工表信息时,如果员工个数<5,不允许删除员工信息,
|
||||
记录下企图删除员工信息的行为 */
|
||||
CREATE TABLE DelEmployeeAttempt(
|
||||
AttemptID INT PRIMARY KEY IDENTITY(1,1),
|
||||
EmployeeID INT,
|
||||
AttemptTime DATETIME DEFAULT GETDATE(),
|
||||
);
|
||||
Go
|
||||
CREATE TRIGGER trg_DelEmployee
|
||||
ON Employee
|
||||
INSTEAD OF DELETE
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @EmployeeCount INT;
|
||||
SELECT @EmployeeCount = COUNT(*) FROM Employee;
|
||||
IF @EmployeeCount < 5
|
||||
BEGIN
|
||||
INSERT INTO DelEmployeeAttempt (EmployeeID)
|
||||
SELECT EmployeeID FROM DELETED;
|
||||
RAISERROR(N'少于5名员工,无法删除', 16, 1);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
DELETE FROM Employee WHERE EmployeeID IN (SELECT EmployeeID FROM DELETED);
|
||||
PRINT(N'删除员工信息成功');
|
||||
END
|
||||
END;
|
||||
Go
|
||||
Reference in New Issue
Block a user