MSSQLトリガ
10051 ワード
---
-- SQL Server , ,
CREATE TABLE Student
(
SID INT PRIMARY KEY --
)
CREATE TABLE BorrowRecord
(
--
BorrowRecord INT IDENTITY(1, 1) , --
StudentID INT , --
BorrowDate DATETIME , --
ReturnDAte DATETIME, --
)
--EXEC sp_rename 'student.sid', 'studentid', 'COLUMN'
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())
INSERT BorrowRecord VALUES(1,GETDATE(),GETDATE())
INSERT BorrowRecord VALUES(2,GETDATE(),GETDATE())
INSERT BorrowRecord VALUES(3,GETDATE(),GETDATE())
------------Insert----------------------------
if (object_id('tr_insert', 'TR') is not null)
drop trigger tr_insert
go
CREATE TRIGGER tr_insert
ON BorrowRecord
FOR insert
as
DECLARE @studentid INT;
SELECT @studentid=studentid FROM INSERTED
INSERT INTO student VALUES(@studentid) ;
go
INSERT BorrowRecord VALUES(11,GETDATE(),GETDATE())
----------------Update---------------------------
if (object_id('truStudent', 'TR') is not null)
drop trigger truStudent
go
create TRIGGER truStudent
ON student -- Student
FOR UPDATE --
AS
IF UPDATE(studentid)
BEGIN
UPDATE BorrowRecord
SET StudentID = i.studentid
FROM BorrowRecord br ,
DELETED d ,
INSERTED i
WHERE br.StudentID = d.studentid
END
--
UPDATE student SET studentid=2 WHERE studentid=7
SELECT * FROM BorrowRecord
SELECT * FROM student
----------------delete---------------------------
if (object_id('deletri', 'TR') is not null)
drop trigger deletri
go
CREATE TRIGGER deletri
ON student
FOR DELETE
AS
DELETE BorrowRecord FROM BorrowRecord br,DELETED d
WHERE br.StudentID=d.studentid
--
DELETE FROM student WHERE studentid=7
SELECT * FROM BorrowRecord