Procedura: creare ed eseguire una funzione SQL Server definita dall'utente tramite l'integrazione di Common Language Runtime
Per creare una funzione SQL definita dall'utente, è necessario aggiungere una Funzione definita dall'utente a un progetto di database Common Language Runtime di SQL Server (CLR SQL). Al termine di una corretta distribuzione, è possibile chiamare ed eseguire la funzione definita dall'utente.
Nota
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Creazione di funzioni definite dall'utente di SQL Server
Per compilare e distribuire questa funzione mediante Visual Studio
Aprire un Progetto di database CLR SQL esistente o crearne uno nuovo. Per ulteriori informazioni, vedere Procedura: creare un progetto per gli oggetti di database che utilizzano l'integrazione di Common Language Runtime di SQL Server.
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Funzione definita dall'utente.
Nella casella Nome digitare un nome per la nuova funzione definita dall'utente.
Aggiungere il codice da eseguire quando viene eseguita la funzione definita dall'utente. Vedere il primo esempio che segue questa procedura.
In Esplora soluzioni aprire la cartella Script di test e fare doppio clic sul file Test.sql per aprirlo e modificarlo. Aggiungere il codice per eseguire la funzione definita dall'utente. Vedere il secondo esempio che segue questa procedura.
Nota
È possibile specificare altri script come script di debug predefinito. Per ulteriori informazioni, vedere Procedura: modificare lo script Test.sql per eseguire oggetti che utilizzano l'integrazione di Common Language Runtime di SQL Server.
Distribuire la funzione definita dall'utente in SQL Server. Per ulteriori informazioni, vedere Procedura: distribuire elementi di progetti di database CLR SQL Server su SQL Server.
Importante
SQL Server 2005 e SQL Server 2008 supportano solo i progetti SQL Server compilati con la versione 2.0, 3.0 o 3.5 di .NET Framework. Se si tenta di distribuire un progetto SQL Server in SQL Server 2005 o SQL Server 2008, viene visualizzato un errore: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (dove AssemblyName è il nome dell'assembly che si sta distribuendo). Per ulteriori informazioni, vedere Procedura: creare un progetto per gli oggetti di database che utilizzano l'integrazione di Common Language Runtime di SQL Server.
Premere F5 per effettuare il debug della funzione definita dall'utente mediante l'esecuzione in SQL Server.
Oggetto di descrizione
Nell'esempio che segue viene creata una funzione scalare definita dall'utente denominata addTax che accetta come parametro un prezzo, aggiunge l'imposta sul fatturato e restituisce il prezzo e l'imposta.
Dopo aver creato la funzione, distribuirla in SQL Server. Per ulteriori informazioni, vedere Procedura: distribuire elementi di progetti di database CLR SQL Server su SQL Server.
Codice
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Partial Public Class UserDefinedFunctions
Public Const SALES_TAX As Double = 0.086
<SqlFunction()>
Public Shared Function addTax(ByVal originalAmount As SqlDouble) As SqlDouble
Dim taxAmount As SqlDouble = originalAmount * SALES_TAX
Return originalAmount + taxAmount
End Function
End Class
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
public const double SALES_TAX = .086;
[SqlFunction()]
public static SqlDouble addTax(SqlDouble originalAmount)
{
SqlDouble taxAmount = originalAmount * SALES_TAX;
return originalAmount + taxAmount;
}
}
Oggetto di descrizione
Aggiungere codice per verificare la funzione definita dall'utente al file Test.sql contenuto nella cartella Script di test del progetto. Ad esempio, per verificare questa funzione, utilizzare una query, quale "SELECT dbo.addTax(10)". Il valore restituito dovrebbe essere "10.86".
Codice
SELECT dbo.addTax(10)
Vedere anche
Attività
Procedura dettagliata: creazione di una stored procedure nel codice gestito
Procedura: eseguire il debug di una stored procedure CLR SQL
Riferimenti
Attributi per oggetti di database e progetti di database CLR SQL
Concetti
Introduzione all'integrazione con CLR di SQL Server (ADO.NET)
Vantaggi dell'utilizzo di codice gestito per creare oggetti di database
Creazione di oggetti SQL Server nel codice gestito