Condividi tramite


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 fornite in Transact-SQL, le funzioni di aggregazione definite dall'utente eseguono un calcolo su un set di valori e restituiscono un singolo valore.

La creazione di una funzione di aggregazione definita dall'utente in SQL Server prevede i passaggi seguenti:

  • Definire la funzione di aggregazione definita dall'utente come classe in un linguaggio supportato da 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 usando 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.

Nota

La distribuzione di un progetto SQL Server in MicrosoftVisual Studio registra 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 altre informazioni, vedere Distribuzione di oggetti di database CLR.

Nota

La possibilità di SQL Server di eseguire codice CLR è disattivata per impostazione predefinita. È possibile creare, modificare ed eliminare oggetti di database che fanno riferimento a moduli di codice gestito, ma questi riferimenti non verranno eseguiti in SQL Server a meno che l'opzione clr enabled non sia abilitata usando sp_configure (Transact-SQL).

Per creare, modificare o eliminare un assembly

Per creare una funzione di aggregazione definita dall'utente

Vedere anche

Concetti relativi alla programmazione dell'integrazione con CLR (Common Language Runtime)