рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░реЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдСрдбрд┐рдЯ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрд╣ рдХреБрдЫ рдХреЛрдб рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдЫрд▓реА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ (рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдбрд╛рдпрд▓рд░) рдкрд░ рджреЛ рдмрд╣реБрдд рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рдереАред
рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рдереЗ, рдиреМрдХрд░реА рдпрд╛ рдЯреНрд░рд┐рдЧрд░ рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рддрд┐рдХреГрддрд┐, рдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ, рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЗрд╕реЗ рдиреМрдХрд░реА рд╣реЛрдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдирд╣реАрдВ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдзрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА ...
SQL
USE ClaytabaseAcadamyGOCREATE TABLE Customer(CustomerID INT IDENTITY(1,1) CONSTRAINT PK_CustomerID PRIMARY KEY,CustomerName NVARCHAR(100),CustomerStatus INT--,Other Customer Data...)CREATE TABLE CustomerAudit(CustomerAuditID INT IDENTITY(1,1) CONSTRAINT PK_CustomerAuditID PRIMARY KEY,CustomerAuditType NVARCHAR(100),CustomerAuditDate DATETIME DEFAULT GETDATE(),CustomerID INT,CustomerName NVARCHAR(100),CustomerStatus INT) CREATE TABLE Dialler(CustomerID INT CONSTRAINT PK_DiallerCustomerID PRIMARY KEY,CustomerStatus INT,CustomerName NVARCHAR(100),DiallerStatus INT--Other Dialler Records)GO
рдХреНрдпрд╛ рдпреЗ рд╕рд╣рд╛рдпрдХ рдерд╛?
рддреЛ рдЕрдм рд╣рдордиреЗ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдЯреЗрдмрд▓ рдмрдирд╛рдП рд╣реИрдВ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЧреЗ рд╣рдо рдбрд╛рдпрд▓рд░ рд╕рд╛рдЗрдб рдкрд░ рдЕрдкрдбреЗрдЯ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрдЯреЛрд░реНрдб рдкреНрд░реЛрд╕реАрдЬрд░ рдмрдирд╛рдПрдВрдЧреЗред
рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рд░рдЦрдирд╛ рд╣реИ (рдореИрдВ рд╕рд░реНрд╡рд░ 1 рдХреЛ рд╕рд░реНрд╡рд░ 2 рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛), рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╡реЗрдм рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
SQL
USE ClaytabaseAcadamyGOCREATE PROC DiallerUpdate(@CustomerID INT,@CustomerName NVARCHAR(100),@CustomerStatus INT) AS BEGINUPDATE Dialler SET CustomerStatus=@CustomerStatus,CustomerName=@CustomerNameWHERE CustomerID=@CustomerIDENDGOCREATE PROC DiallerInsert(@CustomerID INT,@CustomerName NVARCHAR(100),@CustomerStatus INT) AS BEGININSERT INTO Dialler(CustomerID,CustomerName,CustomerStatus,DiallerStatus)SELECT @CustomerID,@CustomerName,@CustomerStatus,0ENDGOCREATE PROC DiallerDelete(@CustomerID INT) AS BEGINDELETE FROM DiallerWHERE CustomerID=@CustomerIDENDGO
рдХреНрдпрд╛ рдпреЗ рд╕рд╣рд╛рдпрдХ рдерд╛?
рдЕрдм рд╣рдордиреЗ рдЗрдиреНрд╣реЗрдВ рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИ, рд╣рдо рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛рдиреЗ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рдо рд╕рдВрднрд╛рд▓реЗрдЧрд╛ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдСрдбрд┐рдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SQL
USE ClaytabaseAcadamyGOCREATE TRIGGER CustomerInsert ON Customer AFTER INSERTAS BEGINDECLARE @CustomerID INT,@CustomerName NVARCHAR(100),@CustomerStatus INT--Get Record DetailsSELECT @CustomerID=CustomerID,@CustomerName=CustomerName,@CustomerStatus=CustomerStatus FROM inserted--Add to AuditINSERT INTO CustomerAudit(CustomerAuditType,CustomerID,CustomerName,CustomerStatus)SELECT 'Record Created',@CustomerID,@CustomerName,@CustomerStatus--Call Insert ProcedureEXEC dbo.DiallerInsert @CustomerID,@CustomerName,@CustomerStatusENDGOCREATE TRIGGER CustomerUpdate ON Customer AFTER UpdateAS BEGINDECLARE @CustomerID INT,@CustomerName NVARCHAR(100),@CustomerStatus INT--Get Record DetailsSELECT @CustomerID=CustomerID,@CustomerName=CustomerName,@CustomerStatus=CustomerStatus FROM inserted--Add to AuditINSERT INTO CustomerAudit(CustomerAuditType,CustomerID,CustomerName,CustomerStatus)SELECT 'Record Updated',@CustomerID,@CustomerName,@CustomerStatus--Call Update ProcedureEXEC dbo.DiallerUpdate @CustomerID,@CustomerName,@CustomerStatusENDGO CREATE TRIGGER CustomerDelete ON Customer AFTER DELETEAS BEGINDECLARE @CustomerID INT,@CustomerName NVARCHAR(100),@CustomerStatus INT--Get Record DetailsSELECT @CustomerID=CustomerID,@CustomerName=CustomerName,@CustomerStatus=CustomerStatus FROM deleted--Add to AuditINSERT INTO CustomerAudit(CustomerAuditType,CustomerID,CustomerName,CustomerStatus)SELECT 'Record Deleted',@CustomerID,@CustomerName,@CustomerStatus--Call Delete ProcedureEXEC dbo.DiallerDelete @CustomerIDENDGO
рдХреНрдпрд╛ рдпреЗ рд╕рд╣рд╛рдпрдХ рдерд╛?
рдФрд░ рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рдХрд╛ рдСрдбрд┐рдЯ рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ ... рдпрджрд┐ рдЗрд╕реЗ рдХреНрд░реЙрд╕ рд╕рд░реНрд╡рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ EXEC рдХрдорд╛рдВрдб рдХреЛ {servername} рдореЗрдВ рдмрджрд▓реЗрдВред {рдбреЗрдЯрд╛рдмреЗрд╕рдирд╛рдо} .{рд╕реНрдХреАрдорд╛}.DialerDelete рдЖрджрд┐/
рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
SQL
USE ClaytabaseAcadamyGO--Insert DataINSERT INTO Customer(CustomerName,CustomerStatus) SELECT ' Name 1',0INSERT INTO Customer(CustomerName,CustomerStatus) SELECT ' Name 2',0INSERT INTO Customer(CustomerName,CustomerStatus) SELECT ' Name 3',0UPDATE Customer SET CustomerStatus=2 WHERE CustomerID=1UPDATE Customer SET CustomerName=' Name 4' WHERE CustomerID=2DELETE FROM Customer WHERE CustomerID=3--Review DataSELECT * FROM DiallerSELECT * FROM CustomerSELECT * FROM CustomerAudit
Results
Dialler Records | |||
CustomerID | CustomerStatus | CustomerName | DiallerStatus |
1 | 2 | Name 1 | 0 |
2 | 0 | Name 4 | 0 |
Customer Records | ||
CustomerID | CustomerName | CustomerStatus |
1 | Name 1 | 2 |
2 | Name 4 | 0 |
Audit Records | ||||
CustomerAuditID | CustomerAuditType | CustomerID | CustomerName | CustomerStatus |
1 | Record Created | 1 | Name 1 | 0 |
2 | Record Created | 2 | Name 2 | 0 |
3 | Record Created | 3 | Name 3 | 0 |
4 | Record Updated | 1 | Name 1 | 2 |
5 | Record Updated | 2 | Name 4 | 0 |
6 | Record Deleted | 3 | Name 3 | 0 |