Funzioni definite dall'utente in AdventureWorks
Il database OLTP di esempio AdventureWorks include numerose funzioni Transact-SQL definite dall'utente. Nell'argomento Esempi di programmabilità CLR sono disponibili esempi di funzioni CLR (Common Language Runtime) definite dall'utente.
Funzioni CRL definite dall'utente
Nella tabella seguente sono elencati gli esempi di funzioni CLR definite dall'utente disponibili. Per ulteriori informazioni sulle funzioni CLR definite dall'utente, vedere CLR User-Defined Functions.
Esempio | Descrizione |
---|---|
Illustra l'implementazione di cinque funzioni per i valori stringa Transact-SQL che offrono le stesse funzioni di modifica dei valori stringa di quelle predefinite, nonché ulteriori capacità di riconoscimento dei caratteri che consentono di gestire sia le stringhe Unicode sia quelle contenenti caratteri supplementari. Le cinque funzioni sono len_s(), left_s(), right_s(), sub_s() e replace_s(). Si tratta di funzioni per i valori stringa equivalenti a quelle predefinite, ovvero LEN(), LEFT(), RIGHT(), SUBSTRING() e REPLACE(). |
|
Contiene diverse funzioni semplici che illustrano le varie funzionalità del provider di accesso ai dati in-process SQLCLR. |
|
Contiene una funzione valutata a livello di tabella di flusso, scritta in C# e Microsoft Visual Basic, che suddivide i valori di una stringa delimitata da virgole in una tabella con una colonna. Contiene inoltre una funzione di aggregazione che converte una colonna stringa in una stringa delimitata da virgole. |
|
Contiene una funzione di conversione valuta che restituisce un'istanza di un tipo di dati valuta definito dall'utente. |
|
Include funzioni per esporre metadati di assembly in Transact-SQL, ovvero esempi di funzioni valutate a livello di tabella di flusso per restituire i tipi inclusi in un assembly in forma di tabella e funzioni per restituire campi, metodi e proprietà in un tipo definito dall'utente. Illustra tecnologie quali le funzioni valutate a livello di tabella di flusso, API di riflessione di Microsoft .NET Framework e l'invocazione di funzioni valutate a livello di tabella da Transact-SQL. |
Funzioni Transact-SQL definite dall'utente
Nella tabella seguente sono elencate le funzioni Transact-SQL definite dall'utente incluse nel database OLTP di esempio AdventureWorks. Per ulteriori informazioni sulle funzioni definite dall'utente di Transact-SQL, vedere Informazioni sulle funzioni definite dall'utente.
Funzione definita dall'utente | Descrizione | Parametri di input | Valori restituiti |
---|---|---|---|
ufnLeadingZeros |
Funzione scalare che aggiunge zero iniziali a un valore intero specificato. La funzione restituisce un tipo di dati varchar(8). |
@valueint |
@ReturnValuevarchar(8) |
ufnGetContactInformation |
Semplifica l'accesso utente ai dati incapsulando una query complessa in una funzione valutata a livello di tabella. |
@contactidint |
ContactIDint, FirstNamenvarchar(50), LastNamenvarchar(50), JobTitle nvarchar(50), ContactType nvarchar(50) |
ufnGetProductDealerPrice |
Funzione scalare che calcola il prezzo rivenditore di un prodotto specifico in base al rispettivo prezzo di listino in una determinata data. |
@productIDint, @orderdate datetime |
@DealerPricemoney |
Esempi
A. Utilizzo di dbo.ufnLeadingZeros
Nell'esempio seguente viene utilizzata la funzione ufnLeadingZeros
per generare un numero di account del cliente a partire da una colonna CustomerID
esistente nella tabella Customer
.
USE AdventureWorks;
GO
SELECT CustomerID,('AW' + dbo.ufnLeadingZeros(CustomerID))
AS GenerateAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
GO
B. Utilizzo di dbo.ufnGetContactInformation
Il database AdventureWorks contiene i nomi di dipendenti, clienti (rappresentanti di punti vendita o privati) e rappresentanti di fornitori in un'unica tabella, ovvero Contact. La funzione valutata a livello di tabella ufnGetContactInformation
restituisce una riga per un valore ContactID
specificato.
USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(2200);
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(5);
GO
C. Utilizzo di dbo.ufnGetProductDealerPrice
Nell'esempio seguente viene utilizza la funzione ufnGetProductDealerPrice
per restituire il prezzo rivenditore scontato relativo a tutti i prodotti inclusi nella tabella ProductListPriceHistory
.
USE AdventureWorks;
GO
SELECT ProductID, ListPrice, dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS DealerPrice,
StartDate, EndDate
FROM Production.ProductListPriceHistory
WHERE ListPrice > .0000
ORDER BY ProductID, StartDate;
Vedere anche
Altre risorse
Oggetti di SQL Server inclusi in AdventureWorks
CREATE FUNCTION (Transact-SQL)