.


:




:

































 

 

 

 





 

: deleted ( ) inserted ( ). , , , . SQL Server . , , . DDL, CREATE INDEX, .

DML inserted deleted .

  • .
  • .
  • .
  • .

deleted , DELETE UPDATE. DELETE UPDATE deleted. deleted .

inserted , INSERT UPDATE. inserted. inserted .


; deleted, inserted.

INSERT UPDATE, INSTEAD OF, , INSTEAD OF.

  • timestamp.
  • IDENTITY_INSERT ON, IDENTITY . IDENTITY_INSERT ON, INSERT .
  • INSERT NOT NULL, DEFAULT.
  • , , IDENTITY timestamp, , NULL - NOT NULL DEFAULT.

INSERT, UPDATE DELETE , INSTEAD OF, Database Engine , - . , inserted deleted, , , , inserted deleted, , .

inserted deleted INSTEAD OF, , SELECT, .

:

CREATE VIEW EmployeeNames (EmployeeID, LName, FName)

AS

SELECT e.EmployeeID, c.LastName, c.FirstName

FROM AdventureWorks.HumanResources.Employee e

JOIN AdventureWorks.Person.Contact c

ON e.ContactID = c.ContactID

 

: int nvarchar. inserted deleted INSTEAD OF, , int EmployeeID, nvarchar LName nvarchar FName.

, - . , , . , inserted deleted . , .

 

, , (, @@ROWCOUNT).

 

 

DML , . CREATE TRIGGER, ; CREATE TRIGGER.

 

, TRUNCATE TABLE DELETE WHERE ( ), DELETE, TRUNCATE TABLE .

 

INSTEAD OF DELETE INSTEAD OF UPDATE , , DELETE UPDATE.

 

CREATE TRIGGER trigger_name

ON { table | view }

[ WITH [ ENCRYPTION ] [ EXECUTE AS Clause ] ]

{ FOR | AFTER | INSTEAD OF }

{ [ INSERT ] [, ] [ UPDATE ] [, ] [ DELETE ] }

AS { sql_statement [; ] [,...n ] }

 

 

Trigger_name

.

table | view

, DML. INSTEAD OF.

WITH ENCRYPTION

CREATE TRIGGER . .

EXECUTE AS

, . , SQL Server , .

FOR | AFTER

AFTER , SQL, . , , , .

FOR, AFTER .

AFTER .

INSTEAD OF

, DML SQL, , .

INSERT, UPDATE DELETE INSTEAD OF.

{ [ DELETE ] [, ] [ INSERT ] [, ] [ UPDATE ] }

, DML, . . .

INSTEAD OF DELETE , ON DELETE. UPDATE , ON UPDATE.

Sql_statement

, Transact-SQL.

:

. PurchaseOrderHeader. , , , inserted Vendor . .

 

CREATE TRIGGER LowCredit ON PurchaseOrderHeader

AFTER INSERT

AS

DECLARE @creditrating tinyint,

@vendorid int

 

SELECT @creditrating = v.CreditRating, @vendorid = p.VendorID

FROM Purchasing.PurchaseOrderHeader AS p

INNER JOIN inserted AS i

ON p.PurchaseOrderID = i.PurchaseOrderID

JOIN Purchasing.Vendor AS v

ON v.VendorID = i.VendorID

 

IF @creditrating = 5

BEGIN

RAISERROR (' .', 16, 1)

ROLLBACK TRANSACTION

END

GO

 

ALTER TRIGGER.

 

ALTER TRIGGER trigger_name

ON { table | view }

[ WITH [ ENCRYPTION ] [ EXECUTE AS Clause ] ]

{ FOR | AFTER | INSTEAD OF }

{ [ INSERT ] [, ] [ UPDATE ] [, ] [ DELETE ] }

AS { sql_statement [; ] [,...n ] }

 

ALTER TRIGGER CREATE TRIGGER.

 

CREATE TRIGGER (WITH ENCRYPTION), , , WITH ENCRYPTION.

, :

 

ALTER TRIGGER LowCredit ON PurchaseOrderHeader

AFTER INSERT

AS

DECLARE @creditrating tinyint,

@vendorid int

 

SELECT @creditrating = v.CreditRating, @vendorid = p.VendorID

FROM Purchasing.PurchaseOrderHeader AS p

INNER JOIN inserted AS i

ON p.PurchaseOrderID = i.PurchaseOrderID

JOIN Purchasing.Vendor AS v

ON v.VendorID = i.VendorID

 

IF @creditrating = 10

BEGIN

RAISERROR (' .', 16, 1)

ROLLBACK TRANSACTION

END

GO

DROP TRIGGER.

DROP TRIGGER trigger_name

Trigger_name

.

, :

 

DROP TRIGGER LowCredit

16

?

. , . SELECT. SELECT , .

, . , . , .

, . . , . , , , , .

; .

, .

Database Engine , , . , . .

, Database Engine . , , . , , .





:


: 2016-11-22; !; : 896 |


:

:

.
==> ...

1798 - | 1658 -


© 2015-2024 lektsii.org - -

: 0.024 .