Get value from updated, inserted and deleted : Trigger Value « Trigger « SQL Server / T-SQL

SQL Server / T-SQL
1. Aggregate Functions
2. Analytical Functions
3. Constraints
4. Cursor
5. Data Set
6. Data Type
7. Database
8. Date Timezone
9. Index
10. Insert Delete Update
11. Math Functions
12. Select Query
13. Sequence
14. Store Procedure Function
15. String Functions
16. Subquery
17. System
18. Table
19. Table Joins
20. Transact SQL
21. Transaction
22. Trigger
23. View
24. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
SQL Server / T-SQL » Trigger » Trigger Value 
Get value from updated, inserted and deleted


1create 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>
2insert into employee (ID, name,    salary, start_date, city,       region)
3>               values (1,  'Jason', 40420,  '02/01/94', 'New York', 'W')
4> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (2,  'Robert',14420,  '01/02/95', 'Vancouver','N')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (3,  'Celia', 24020,  '12/03/96', 'Toronto',  'W')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (4,  'Linda', 40620,  '11/04/97', 'New York', 'N')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (5,  'David', 80026,  '10/05/98', 'Vancouver','W')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (6,  'James', 70060,  '09/06/99', 'Toronto',  'N')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (7,  'Alison',90620,  '08/07/00', 'New York', 'W')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (8,  'Chris', 26020,  '07/08/01', 'Vancouver','N')
3> GO

(rows affected)
1insert into employee (ID, name,    salary, start_date, city,       region)
2>               values (9,  'Mary',  60020,  '06/09/02', 'Toronto',  'W')
3> GO

(rows affected)
1>
2select from employee
3> GO
ID          name       salary      start_date              city       region
----------- ---------- ----------- ----------------------- ---------- ------
          Jason            40420 1994-02-01 00:00:00.000 New York   W
          Robert           14420 1995-01-02 00:00:00.000 Vancouver  N
          Celia            24020 1996-12-03 00:00:00.000 Toronto    W
          Linda            40620 1997-11-04 00:00:00.000 New York   N
          David            80026 1998-10-05 00:00:00.000 Vancouver  W
          James            70060 1999-09-06 00:00:00.000 Toronto    N
          Alison           90620 2000-08-07 00:00:00.000 New York   W
          Chris            26020 2001-07-08 00:00:00.000 Vancouver  N
          Mary             60020 2002-06-09 00:00:00.000 Toronto    W

(rows affected)
1>
2CREATE TABLE myArchive (
3>    AID         int           IDENTITY(1,1PRIMARY KEY CLUSTERED,
4>    type        nvarchar(6)   NOT NULL,
5>    whenchanged smalldatetime NOT NULL DEFAULT Getdate(),
6>    ID int,
7>    newName nvarchar(30),
8>    oldName nvarchar(50)
9)
10> GO
1>
2>
3CREATE TRIGGER myTriggerINSERT
4> ON Employee
5> FOR INSERT
6> AS
7> DECLARE @ID int, @Name nvarchar(30)
8>
9> SET @ID = (SELECT ID FROM inserted)
10> SET @Name = (SELECT Name FROM inserted)
11>
12INSERT myArchive (type, ID, newNameVALUES('INSERT', @ID, @Name)
13> GO
1>
2>
3CREATE TRIGGER myTriggerDELETE
4> ON Employee
5> FOR DELETE
6> AS
7> DECLARE @ID int, @Name nvarchar(30)
8>
9> SET @ID = (SELECT ID FROM deleted)
10> SET @Name = (SELECT Name FROM deleted)
11>
12INSERT myArchive (type, ID, oldName VALUES('DELETE', @ID, @Name)
13> GO
1>
2CREATE TRIGGER myTriggerUPDATE
3> ON Employee
4> INSTEAD OF UPDATE
5> AS
6>
7> DECLARE @ID int, @newName nvarchar(30), @oldName nvarchar(30)
8>
9> IF (SELECT ID FROM inserted<> (SELECT ID FROM deleted)
10>     RAISERROR ('You are not allowed to change ID.', 10,1)
11> ELSE
12BEGIN
13>
14> --set local variables
15> SET @ID = (SELECT ID FROM inserted)
16> SET @newName = (SELECT Name FROM inserted)
17> SET @oldName = (SELECT Name FROM deleted)
18>
19> --write to table
20UPDATE Employee SET Name = @newName WHERE ID = @ID
21> -- write to archive
22INSERT myArchive (type, ID, newName, oldNameVALUES('UPDATE', @ID, @newName, @oldName)
23END
24> GO
1>
2INSERT Employee (id, nameVALUES (13'Rickie')
3> GO

(rows affected)
1>
2SELECT FROM myArchive
3> GO
AID         type   whenchanged          ID          newName                        oldName
----------- ------ -------------------- ----------- ------------------------------ ------------------
          INSERT  2006-10-10 20:21:00          13 Rickie                         NULL

(rows affected)
1>
2UPDATE Employee
3> SET Name = 'Rick'
4WHERE ID = 3
5> GO

(rows affected)

(rows affected)
1>
2SELECT FROM myArchive
3> GO
AID         type   whenchanged          ID          newName                        oldName
----------- ------ -------------------- ----------- ------------------------------ ------------------
          INSERT  2006-10-10 20:21:00          13 Rickie                         NULL
          UPDATE  2006-10-10 20:21:00           3 Rick                           Celia

(rows affected)
1>
2>
3> drop table myArchive
4> drop table employee
5> GO
1>
           
       
Related examples in the same category
1. Learning to Reference Inserted and Deleted Tables
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.