Share via


Erstellen, Ändern und Entfernen von Triggern

In SMO werden Trigger durch das Trigger-Objekt dargestellt. Der Transact-SQL-Code, der ausgeführt wird, wenn der ausgelöste Trigger durch die TextBody-Eigenschaft des Trigger-Objekts gesetzt ist. Der Typ des Triggers wird über andere Eigenschaften des Trigger-Objekts gesetzt, beispielsweise durch die Update-Eigenschaft. Hierbei handelt es sich um eine boolesche Eigenschaft, die angibt, ob der Trigger durch ein UPDATE von Datensätzen auf der übergeordneten Tabelle ausgelöst wird.

Das Trigger-Objekt stellt herkömmlicherweise Datenbearbeitungssprachentrigger (DML) dar. In SQL Server 2008 werden Datendefinitionssprachentrigger (DDL) ebenfalls unterstützt. DDL-Trigger werden durch das DatabaseDdlTrigger-Objekt und das ServerDdlTrigger-Objekt dargestellt.

Beispiel

Um die bereitgestellten Codebeispiele verwenden zu können, müssen Sie die Programmierumgebung, die Programmiervorlage und die Programmiersprache wählen, in der die Anwendung erstellt werden soll. Weitere Informationen finden Sie in der SQL Server-Onlinedokumentation unter "Vorgehensweise: Erstellen eines Visual Basic SMO-Projekts in Visual Studio .NET" oder "Vorgehensweise: Erstellen eines Visual C# SMO-Projekts in Visual Studio .NET".

Erstellen, Ändern und Entfernen eines Triggers in Visual Basic

Dieses Codebeispiel zeigt, wie ein UPDATE-Trigger in einer vorhandenen Tabelle mit dem Namen Sales in der AdventureWorks-Datenbank erstellt und aktualisiert wird. Der Trigger sendet eine Erinnerungsmeldung, wenn die Tabelle aktualisiert oder ein neuer Datensatz eingefügt wird.

'Connect to the local, default instance of SQL Server.
Dim mysrv As Server
mysrv = New Server
'Reference the AdventureWorks database.
Dim mydb As Database
mydb = mysrv.Databases("AdventureWorks")
'Declare a Table object variable and reference the Customer table.
Dim mytab As Table
mytab = mydb.Tables("Customer", "Sales")
'Define a Trigger object variable by supplying the parent table, schema ,and name in the constructor.
Dim tr As Trigger
tr = New Trigger(mytab, "Sales")
'Set TextMode property to False, then set other properties to define the trigger.
tr.TextMode = False
tr.Insert = True
tr.Update = True
tr.InsertOrder = Agent.ActivationOrder.First
Dim stmt As String
stmt = " RAISERROR('Notify Customer Relations',16,10) "
tr.TextBody = stmt
tr.ImplementationType = ImplementationType.TransactSql
'Create the trigger on the instance of SQL Server.
tr.Create()
'Remove the trigger.
tr.Drop()

Erstellen, Ändern und Entfernen eines Triggers in Visual C#

Dieses Codebeispiel zeigt, wie ein UPDATE-Trigger in einer vorhandenen Tabelle mit dem Namen Sales in der AdventureWorks-Datenbank erstellt und aktualisiert wird. Der Trigger sendet eine Erinnerungsmeldung, wenn die Tabelle aktualisiert oder ein neuer Datensatz eingefügt wird.

{ 
//Connect to the local, default instance of SQL Server. 
Server mysrv; 
mysrv = new Server(); 
//Reference the AdventureWorks database. 
Database mydb; 
mydb = mysrv.Databases("AdventureWorks"); 
//Declare a Table object variable and reference the Customer table. 
Table mytab; 
mytab = mydb.Tables("Customer", "Sales"); 
//Define a Trigger object variable by supplying the parent table, schema ,and name in the constructor. 
Trigger tr; 
tr = new Trigger(mytab, "Sales"); 
//Set TextMode property to False, then set other properties to define the trigger. 
tr.TextMode = false; 
tr.Insert = true; 
tr.Update = true; 
tr.InsertOrder = Agent.ActivationOrder.First; 
string stmt; 
stmt = " RAISERROR('Notify Customer Relations',16,10) "; 
tr.TextBody = stmt; 
tr.ImplementationType = ImplementationType.TransactSql; 
//Create the trigger on the instance of SQL Server. 
tr.Create(); 
//Remove the trigger. 
tr.Drop(); 
}