Condividi tramite


Creare funzioni di aggregazione definite dall'utente

Si applica a: SQL Server 2016 (13.x) e versioni successive

È possibile creare un oggetto di database all'interno di SQL Server programmato in un assembly CLR. Gli oggetti di database che possono utilizzare il complesso modello di programmazione fornito da CLR includono trigger, stored procedure, funzioni, funzioni di aggregazione e tipi.

Analogamente alle funzioni di aggregazione predefinite incluse in Transact-SQL, le funzioni di aggregazione definite dall'utente eseguono un calcolo su un set di valori e restituiscono un unico valore.

Per creare una funzione di aggregazione definita dall'utente in SQL Server, eseguire le operazioni descritte di seguito:

  • Impostare la funzione di aggregazione definita dall'utente come una classe utilizzando un linguaggio supportato in Microsoft .NET Framework. Per altre informazioni su come programmare aggregazioni definite dall'utente in CLR, vedere aggregazioni CLR definite dall'utente. Compilare questa classe per compilare un assembly CLR utilizzando il compilatore di linguaggio appropriato.

  • Registrare l'assembly in SQL Server usando l'istruzione CREATE ASSEMBLY. Per altre informazioni sugli assembly in SQL Server, vedere Assembly (motore di database).

  • Creare l'aggregazione definita dall'utente che fa riferimento all'assembly registrato usando l'istruzione CREATE AGGREGATE.

L'esecuzione di codice CLR in SQL Server è disattivata per impostazione predefinita. È possibile creare, modificare ed eliminare oggetti di database che fanno riferimento a moduli di codice gestito, ma questi riferimenti non vengono eseguiti in SQL Server, a meno che l'opzione di configurazione del server clr abilitata per server non sia abilitata tramite sp_configure.

Con la distribuzione di un progetto SQL Server in Microsoft Visual Studio viene registrato un assembly nel database specificato per il progetto. La distribuzione del progetto crea anche funzioni CLR nel database per tutti i metodi annotati con l'attributo SqlFunction. Per ulteriori informazioni, consultare Implementare oggetti di database CLR.

Creare, modificare o eliminare un assembly

Creare una funzione di aggregazione definita dall'utente