Learning to Reference Inserted and Deleted Tables
Posted on 2010-06-10 18:15 kingwangzhen 阅读(175) 评论(0) 编辑 收藏 举报1> create table employee(
2> ID int,
3> name nvarchar (10),
4> salary int,
5> start_date datetime,
6> city nvarchar (10),
7> region char (1))
8> GO
1>
2> insert into employee (ID, name, salary, start_date, city, region)
3> values (1, 'Jason', 40420, '02/01/94', 'New York', 'W')
4> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (2, 'Robert',14420, '01/02/95', 'Vancouver','N')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (3, 'Celia', 24020, '12/03/96', 'Toronto', 'W')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (4, 'Linda', 40620, '11/04/97', 'New York', 'N')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (5, 'David', 80026, '10/05/98', 'Vancouver','W')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (6, 'James', 70060, '09/06/99', 'Toronto', 'N')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (7, 'Alison',90620, '08/07/00', 'New York', 'W')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (8, 'Chris', 26020, '07/08/01', 'Vancouver','N')
3> GO
(1 rows affected)
1> insert into employee (ID, name, salary, start_date, city, region)
2> values (9, 'Mary', 60020, '06/09/02', 'Toronto', 'W')
3> GO
(1 rows affected)
1>
2> select * from employee
3> GO
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
1 Jason 40420 1994-02-01 00:00:00.000 New York W
2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N
3 Celia 24020 1996-12-03 00:00:00.000 Toronto W
4 Linda 40620 1997-11-04 00:00:00.000 New York N
5 David 80026 1998-10-05 00:00:00.000 Vancouver W
6 James 70060 1999-09-06 00:00:00.000 Toronto N
7 Alison 90620 2000-08-07 00:00:00.000 New York W
8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N
9 Mary 60020 2002-06-09 00:00:00.000 Toronto W
(9 rows affected)
1>
2> --Learning to Reference Inserted and Deleted Tables
3>
4> IF EXISTS(SELECT *
5> FROM sys.objects o JOIN sys.schemas s
6> ON o.schema_id = s.schema_id
7> WHERE type = 'TR' AND
8> s.name = 'dbo' AND
9> o.name = 'myTrigger')
10> DROP TRIGGER myTrigger
11> GO
1>
2> CREATE TRIGGER myTrigger
3> ON Employee
4> FOR UPDATE, INSERT, DELETE
5> AS
6> SELECT * FROM inserted
7> SELECT * FROM deleted
8> GO
1>
2> SELECT 'Before INSERT'
3>
4> INSERT Employee (ID, Name)
5> VALUES (31, 'Rick')
6> GO
-------------
Before INSERT
(1 rows affected)
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
31 Rick NULL NULL NULL NULL
(1 rows affected)
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
(0 rows affected)
1>
2> SELECT 'Before UPDATE'
3>
4> UPDATE Employee
5> SET Name = 'Rickie'
6> WHERE ID = 3
7> GO
-------------
Before UPDATE
(1 rows affected)
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
3 Rickie 24020 1996-12-03 00:00:00.000 Toronto W
(1 rows affected)
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
3 Celia 24020 1996-12-03 00:00:00.000 Toronto W
(1 rows affected)
1> SELECT 'Before DELETE'
2> GO
-------------
Before DELETE
(1 rows affected)
1> DELETE FROM Employee WHERE ID = 3
2> GO
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
(0 rows affected)
ID name salary start_date city region
----------- ---------- ----------- ----------------------- ---------- ------
3 Rickie 24020 1996-12-03 00:00:00.000 Toronto W
(1 rows affected)
1> drop table employee
2> GO
1>