24
บบบบบ 15 บบบบบบบบ บบบบบบบบบบบบบบบบบบบบบบบบ(Triggers) ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใ (Triggers) ใใใใใใใใใใใใใใใใใใ ใใใใใ Data Integrity ใใใใใใใใใใใใใใใใใใใใ Constraints ใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใ ใใ ใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใ ใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใ ใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใ SQL Server ใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใ ใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใ ใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใ ใใใใใใใใใใใใใใ Data Integrity ใใใใใใใ Constraints ใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใ ใ ใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใ Stored Procedure ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใ

DBMS ไทย บทที่ 15 การสร้าง และการจัดการกับทริกเกอร์(Triggers)

Embed Size (px)

DESCRIPTION

DBMS ไทย บทที่ 15 การสร้าง และการจัดการกับทริกเกอร์(Triggers)

Citation preview

15

15

(Triggers)

(Triggers) Data Integrity Constraints SQL Server Data Integrity Constraints Stored Procedure SQL Server

Stored Procedures,Rule Defaults Data Integrity Rule Defaults Stored Procedure Data Integrity Contraints Constraints Constraints Denormalized Data Normalization Normalization SQL Server 2 1. AFTER 2. INSTEAD OF AFTER

sysadmin fixed server role, db_owner db_ddladmin fixed database roles () CREATE TRIGGER[OWNER].Trigger_name

ON[OWNER].Table_Name

FOR{INSERT,DELETE,UPDATE}

[WITH ENCRYPTION]

AS

BEGIN

Sql_Statements/* Transact-SQL */END

Trigger_name Server

INSERT, DELETE UPDATE WITH ENCRYPTION Sql_Statements Transact-SQL BEGIN END

UPDATE, INSERT, DELETE INSERT

INSERT INSERT TblOrders

CREATE TRGGER Check_Orders ON TbiOrders

FOR INSERT,UPDATE

AS

BEGIN

DECLARE@DayOfMonth tinyint

SELECT@DayOfMonth = DatePart(Day,l.OrderDate)

FROM TblOrders O.OrderIL=l.OrderID

IF@DayOfMonth>15

BEGIN

ROLLBACKTRAN

RAISERROR(Orders must be placed before the 15th of the month,16,10)

END

END

INSERT UPDATE INSERT INSERT OrderDate 15 INSERTED INSERT UPDATE 2 1. INSERT INSERTED INSERTED 2. UPDATE DELETED INSERTED UPDATE

IF UPDATE() Column Unitprice Modified Unitprice TblProducts CREATE TRIGGER CheckPrice ON TblProducts

FOR UPDATE

AS

BEGIN

IF UPDATE(Unitprice)

PRINTColumn Unitprice Modified

END

Unitprice IF Column Unitprice Modified

DELETE

2 1. Data Integrity Foreign Key 2. TblOrders TblOrdersDetails Note @@ROWCOUNT

DELETE TblCustomersCREATE TRIGGER Check_Customers ON TblCustomers

FOR DELETE

AS

BEGIN

IF @@ROWCOUNT>1

BEGIN

ROLLBACK TRAN

RAISERROR(You can only delete one row at a time.,16,10)

END

END

TblCustormers Note INSERTED DELETED INSERT,UPDATE,DELETE INSERTED DELETE

SQL Server INSERTED INSERT

DELETED DELETE

INSERTED DELETE UPDATE1. DELETED DELETE UPDATE DELETE UPDATE DELETED

2. INSERTED INSERT UPDATE INSERT INSERTED UPDATE DELETED INSERTED INSTEAD OF

AFTER Instead Of Trigger ( INSERT, UPDATE, DELETE ) AFTER INSTEAD OF ProductID TblProducts

INSERTED DELETED INSTEAD OF Trigger

INSTEAD OF INSERTED DELETED AFTER INSTEAD OF SQL Server INSERTED DELETED CREATE VIEW Customerinfo

AS

SELECT CustomerName, CustomerAddress, Telephon FROM TblCustomers

3 INSERTED DELETED CustomerName, CustomerAddress, Telephon INSTEAD OF

INSTEAD OF AFTER CREATE TRIGGERON

INSTEAD OF

AS BEGIN

INSERT, UPDATE DELETE AFTER INSTEAD OF AFTER 1. CREATE VIEW PriceIncludeVAT

AS

SELECT ProductID,CategoryID,ProductName,Unitprice,Realprice=CASE VATFlag /* RealPrice */

WHEN 1 THEN Unitprice * 1.07

WHEN 0 THEN Unitprice

END

FROM TblProducts

2. 3. PricelncludeVAT TblProducts

CREATE TRIGGER INSERTTblProducts ON PricelncludeVAT

INSTEAD OF INSERT

AS

INSERT INTO TblProducts

SELECT ProductID,CategoryID,ProductName,UnitPrice,0,0 FROM INSERTED

4. INSERT 2 PricelncludeVAT ROLLBACK TRAN[SACTION] 32 SQL Server sp_configure EXEX sp_configurenested triggers,1

0 SQL Server SQL Server SQL Server SQL SQL Server (Rollback) INSERT,UPDATE, DELETE SQL Server CREATE DATABASE, TABLE, INDEX, PROCEDURE, DEFAULT, RULE, TRIGGER VIEW

DROP ALTER TABLE,ALTER DATABASE

TRUNCATE TABLE

GRANT, REVOKE

UPDATE STATISTICS

RECONFIGURE

LOAD DATABASE LOAD TRANSACTION

CREATE TABLE SELECT INTO AFTER SET SQL Server TEXT IMAGE CategoryPicture IMAGE SELECT Stored Procedure

Trigger

/, , //

Transact-SQL /ENABLE TRIGGER[trigger_name]ON[object_name]*/*/

DISABLE TRIGGER[trigger_name]ON[object_name]*/*// Management Studio triggers DELETE

Transact-SQL DROP TRIGGER[owner.]trigger_name[,[owner.]trigger_name]

Note

Stored Procedure sp_rename Sp_rename Check_Customers,Check_CustomersNew

SQL Server Stored Procedure sp_help , SQL Server sp_depends Stored Procedure

Rule, Defaults, Stored procedure, syscomments