Condividi tramite


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

Manipolazione di stringhe contenenti caratteri aggiuntivi

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().

Esempio di accesso ai dati in-process

Contiene diverse funzioni semplici che illustrano le varie funzionalità del provider di accesso ai dati in-process SQLCLR.

Esempio StringUtilities

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.

Livello CLR di AdventureWorks Cycles

Contiene una funzione di conversione valuta che restituisce un'istanza di un tipo di dati valuta definito dall'utente.

Funzioni di utilità per i tipi definiti dall'utente (UDT)

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)

Guida in linea e informazioni

Assistenza su SQL Server 2005