Creazione di funzioni di aggregazione definite dall'utente

È possibile creare un oggetto di database all'interno di SQL Server programmato in un assembly CLR. Gli oggetti di database che possono sfruttare 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 ulteriori informazioni sulla programmazione di funzioni di aggregazione definite dall'utente in CLR, vedere Aggregazioni CLR definite dall'utente. Compilare questa classe per generare un assembly CLR utilizzando il compilatore di linguaggio appropriato.

  • Per registrare l'assembly in SQL Server, utilizzare l'istruzione CREATE ASSEMBLY. Per ulteriori informazioni sugli assembly in SQL Server, vedere Assembly (Motore di database).

  • Per creare la funzione di aggregazione definita dall'utente che fa riferimento all'assembly registrato, utilizzare l'istruzione CREATE AGGREGATE.

Nota

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 consente inoltre di creare una funzione di aggregazione definita dall'utente nel database per tutte le definizioni di classe annotate con l'attributo SqlUserDefinedAggregate. Per ulteriori informazioni, vedere Distribuzione di oggetti di database CLR.

Nota

Per impostazione predefinita, l'esecuzione di codice CLR in SQL Server è disattivata. È possibile creare, modificare ed eliminare oggetti di database che fanno riferimento a moduli di codice gestito. Tali riferimenti non verranno tuttavia eseguiti in SQL Server a meno che non si attivi l'opzione CLR tramite sp_configure (Transact-SQL).

Per creare, modificare o eliminare un assembly

Per creare una funzione di aggregazione definita dall'utente