Creazione di trigger CLRCreate CLR Triggers

È possibile creare un oggetto di database all'interno di SQL ServerSQL Server programmato in un assembly creato in MicrosoftMicrosoft .NET Framework.NET Framework Common Language Runtime (CLR).You can create a database object inside SQL ServerSQL Server that is programmed in an assembly created in the MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR). Tra gli oggetti di database che consentono l'utilizzo del ricco modello di programmazione offerto da CLR vi sono trigger DML, trigger DDL, stored procedure, funzioni, funzioni di aggregazione e tipi.Database objects that can leverage the rich programming model provided by the CLR include DML triggers, DDL triggers, stored procedures, functions, aggregate functions, and types.

Per creare un trigger CLR (DML o DDL) in SQL ServerSQL Server , eseguire le operazioni seguenti:Creating a CLR trigger (DML or DDL) in SQL ServerSQL Server involves the following steps:

  • Definire il trigger come una classe in un linguaggio supportato da .NET Framework.Define the trigger as a class in a .NET Framework-supported language. Per altre informazioni sulla programmazione di trigger in CLR, vedere Trigger CLR.For more information about how to program triggers in the CLR, see CLR Triggers. Compilare quindi la classe per ottenere un assembly in .NET Framework.NET Framework utilizzando il compilatore appropriato.Then, compile the class to build an assembly in the .NET Framework.NET Framework using the appropriate language compiler.

  • Per registrare l'assembly in SQL ServerSQL Server, utilizzare l'istruzione CREATE ASSEMBLY.Register the assembly in SQL ServerSQL Server using the CREATE ASSEMBLY statement. Per altre informazioni sugli assembly in SQL ServerSQL Server, vedere Assemblies (Database Engine).For more information about assemblies in SQL ServerSQL Server, see Assemblies (Database Engine).

  • Creare il trigger che fa riferimento all'assembly registrato.Create the trigger that references the registered assembly.

Nota

Con la distribuzione di un progetto SQL Server in MicrosoftMicrosoft Visual StudioVisual Studio viene registrato un assembly nel database specificato per il progetto.Deploying a SQL Server Project in MicrosoftMicrosoft Visual StudioVisual Studio registers an assembly in the database that was specified for the project. La distribuzione del progetto crea inoltre trigger CLR nel database per tutti i metodi annotati con l'attributo SqlTrigger .Deploying the project also creates CLR triggers in the database for all methods annotated with the SqlTrigger attribute. Per altre informazioni, vedere Distribuzione di oggetti di database CLR.For more information, see Deploying CLR Database Objects.

Nota

Per impostazione predefinita, l'esecuzione di codice CLR in SQL ServerSQL Server è disattivata.The ability of SQL ServerSQL Server to execute CLR code is off by default. È possibile creare, modificare ed eliminare oggetti di database che fanno riferimento a moduli di codice gestito. Tali riferimenti non verranno tuttavia eseguiti in SQL ServerSQL Server a meno che non si attivi l'opzione clr enabled usando sp_configure (Transact-SQL).You can create, alter, and drop database objects that reference managed code modules, but these references will not execute in SQL ServerSQL Server unless the clr enabled Option is enabled using sp_configure (Transact-SQL).

Per creare, modificare o eliminare un assemblyTo create, modify, or drop an assembly

Vedere ancheSee Also

Trigger DML DML Triggers
Concetti relativi alla programmazione dell'integrazione con CLR (Common Language Runtime) Common Language Runtime (CLR) Integration Programming Concepts
Accesso ai dati da oggetti di database CLR Data Access from CLR Database Objects