2010-12-17 17 views
0

Was bedeuten Stored Procedures und Trigger in der Datenbank? Wie kann ich Stored Procedures erstellen? Wie kann ich Trigger auslösen? Wenn Sie einfache Beispiele für jede dieser .please Hilfe haben :) was ich weiß, ist nur über Auslöser, der aktiviert wird, wenn eine Aktion von (einfügen oder löschen oder aktualisieren) gegen die angegebenen Einschränkungen verletzt, aber ich weiß nicht, wie zu erstellen , so wieder, wenn irgendein Beispiel haben bitteGespeicherte Prozeduren und Trigger in der Datenbank

+0

Dies ist ein Job für Google nicht SO. Wenn Sie suchen, suchen Sie in Verbindung mit einer bestimmten Datenbank (z. B. Oracle), da die Syntax variiert. – orangepips

+1

Jemand mit Ihrem Kenntnisstand hat KEINE BUSINESS-Auslöser.Trigger sollten nur von Entwicklern erstellt werden, die Datenbankexperten sind, da sie bei schlechtem Schreiben großen Schaden anrichten können. – HLGEM

+0

@HLGEM: Ich glaube nicht wirklich, dass das OP mit solchen Kommentaren besser wird. Im Gegenteil, ich denke, das OP möchte wissen, was SP und TRG wirklich sind, damit er nicht ständig damit herumkommt und weiß, wie man sie richtig benutzt. –

Antwort

3

Denken Sie an eine gespeicherte Prozedur als eine Methode in Ihrem Code. Es führt eine bestimmte Reihe von Anweisungen aus.

Gespeicherte Prozeduren werden erstellt, um zum Beispiel komplexe Datenmengen zu verwalten, die normalerweise in Ihrem Code schwer zu handhaben sind.

Sie können erstellen Stored Procedure mit den folgenden Anweisungen:

Oracle

CREATE OR REPLACE PROCEDURE P_PROCEDURE_NAME (
    pParameter1 NUMBER 
    , pParameter2 VARCHAR2(100 Bytes) 
) AS 
BEGIN 
    -- Procedure code here... 
END; 

SQL Server

CREATE PROCEDURE cspProcedureName 
    @parameter1 int 
    , @parameter2 nvarchar(100) 
AS 
    -- Procedure code here... 

Oracle

Wie bei den Triggern handelt es sich um Codesätze, die bei einer Aktion aufgerufen werden, die in der zugehörigen Tabelle auftritt. Zum Beispiel gibt es in Oracle keine INDENTITY Spalten wie SQL Server bietet. Stattdessen werden Sequenzen zusammen mit Triggern verwendet, um das gleiche zu simulieren. Daher müssen Sie eine Oracle SEQUENCE und dann den TRIGGER erstellen, um das ID-Feld Ihrer Tabelle zu aktualisieren.

CREATE SEQUENCE SEQ_CUSTOMERS 
    MINVALUE 1 
    MAXVALUE 65535 
    START WITH 1 
    INCREMENT BY 1; 

CREATE OR REPLACE TRIGGER TRG_CUSTOMERS_INSERT 
    BEFORE INSERT 
     ON TBL_CUSTOMERS 
     FOR EACH ROW 
BEGIN 
    :NEW.CUST_ID := SEQ_CUSTOMERS.NEXTVAL; 
END; 

SQL Server

Ein Trigger Beispiel in SQL Server würde das Update automatisch Datumzeit eines Datensatzes werden aktualisieren. Beachten Sie Folgendes:

CREATE TABLE Customers (
    CustId int NOT NULL IDENTITY(1, 1) PRIMARY KEY 
    , CustName nvarchar(100) NOT NULL 
    , CreatedOn datetime DEFAULT GETDATE() 
    , LastUpdate datetime NOT NULL 
) 
GO 

CREATE TRIGGER trgCustomersUpdt 
    AFTER UPDATE 
     ON Customers 
AS 
    update Customers 
     set LastUpdate = GETDATE() 
     where CustId = inserted.Custid 
GO 

HAFTUNGSAUSSCHLUSS

Dieser Code nicht getestet und können geringfügige Änderungen erfordern, um richtig gegen ihre jeweiligen RDBMS zu arbeiten.

Um es zusammenzufassen, Trigger werden hauptsächlich verwendet, wie hier dargestellt, obwohl es viele andere mögliche Anwendung sind, wie eine Geschichte von Tabellenänderungen den Aufbau, die Throught Zeit aufgetreten, alle Aufzeichnungen von Transaktionen in eine Geschichte zu halten Tisch oder dergleichen. Die Stored Procedures werden hauptsächlich zur Ausführung komplexer Datenbankaufgaben verwendet, bei denen dies im Code zu komplex wird.

Verwandte Themen