Compartilhar via


Criando, alterando e removendo gatilhos

No SMO, gatilhos são representados através do objeto Trigger. O código Transact-SQL executado quando o gatilho acionado é definido pela propriedade TextBody do objeto Trigger. O tipo de gatilho é definido através de outras propriedades do objeto Trigger, como, por exemplo, a propriedade Update. Essa é uma propriedade Booleana que especifica se o gatilho é acionado por um UPDATE de registros na tabela pai.

O objeto Trigger representa gatilhos tradicionais da DML (linguagem de manipulação de dados). No SQL Server 2008, também há suporte a gatilhos da DDL (linguagem de definição de dados). Os gatilhos da DDL são representados pelos objetos DatabaseDdlTrigger e ServerDdlTrigger.

Exemplo

Para usar qualquer exemplo de código fornecido, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o aplicativo. Para mais informações, consulte "Como criar um projeto Visual Basic SMO no Visual Studio .NET" ou "Como criar um projeto Visual C# SMO no Visual Studio .NET" nos Manuais Online do SQL Server.

Criando, alterando e removendo um gatilho no Visual Basic

Este exemplo de código mostra como criar e inserir um gatilho de atualização em uma tabela existente, chamada Sales, no banco de dados AdventureWorks. O gatilho envia uma mensagem de lembrete quando a tabela é atualizada ou um novo registro é inserido.

'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()

Criando, alterando e removendo um gatilho no Visual C#

Este exemplo de código mostra como criar e inserir um gatilho de atualização em uma tabela existente, chamada Sales, no banco de dados AdventureWorks. O gatilho envia uma mensagem de lembrete quando a tabela é atualizada ou um registro novo é inserido.

{ 
//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(); 
}