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 sulla programmazione di funzioni di aggregazione 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 con l'istruzione CREATE ASSEMBLY. Per altre 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.

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 tali riferimenti non verranno eseguiti in SQL Server a meno che non si abiliti l'opzione clr enabled usando sp_configure (Transact-SQL).

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 anche di creare funzioni CLR nel database per tutti i metodi annotati con l'attributo SqlFunction . Per altre informazioni, vedere Distribuzione di oggetti di database CLR.

Creare, modificare o eliminare un assembly

Creare una funzione di aggregazione definita dall'utente

Vedi anche