Creazione di funzioni CLR
È possibile creare un oggetto di database all'interno di un'istanza di SQL Server programmata in un assembly creato in Microsoft.NET Framework Common Language Runtime (CLR). Gli oggetti di in grado di sfruttare il ricco modello di programmazione fornito da CLR includono funzioni di aggregazione, funzioni, stored procedure, trigger e tipi.
La creazione di una funzione CLR in SQL Server prevede i seguenti passaggi:
Definire la funzione come metodo Static di una classe in un linguaggio supportato da .NET Framework. Per ulteriori informazioni sulla programmazione di funzioni in CLR, vedere Funzioni CLR definite dall'utente. Quindi, compilare la classe per generare un assembly in .NET Framework utilizzando il compilatore per il linguaggio appropriato.
Registrare l'assembly in SQL Server utilizzando l'istruzione CREATE ASSEMBLY. Per ulteriori informazioni sugli assembly in SQL Server, vedere Assembly (Motore di database).
Creare la funzione che fa riferimento all'assembly registrato utilizzando l'istruzione CREATE FUNCTION.
[!NOTA]
Con la distribuzione di un progetto SQL Server in MicrosoftVisual Studio viene registrato un assembly nel database specificato per il progetto. La distribuzione del progetto consente inoltre di creare funzioni CLR nel database per tutti i metodi annotati con l'attributo SqlFunction. Per ulteriori informazioni, vedere Distribuzione di oggetti di database CLR.
[!NOTA]
La capacità 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 tali riferimenti non verranno eseguiti in SQL Server a meno che non si attivi l'opzione clr enabled Option utilizzando sp_configure (Transact-SQL).
Accesso a risorse esterne
Le funzioni CLR possono essere utilizzate per accedere a risorse esterne, ad esempio file, risorse di rete, servizi Web o altri database, comprese istanze remote di SQL Server. A questo scopo è possibile utilizzare varie classi di .NET Framework, ad esempio System.IO, System.WebServices, System.Sql e così via. L'assembly che contiene tali funzioni deve essere configurato almeno con l'autorizzazione EXTERNAL_ACCESS impostata a questo scopo. Per ulteriori informazioni, vedere CREATE ASSEMBLY (Transact-SQL). È possibile utilizzare il provider gestito SQL Client per accedere a istanze remote di SQL Server, tuttavia nelle funzioni CLR le connessioni loopback al server di origine non sono supportate.
Per creare, modificare o eliminare assembly in SQL Server
Per creare una funzione CLR
Vedere anche