Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

SQL Server funzioni valutate in tabella

By admin on Marzo 11, 2021

Sommario: in questo tutorial, imparerete come usare SQL Server funzione valutata in tabella, inclusa la funzione valutata in linea in tabella e le funzioni valutate multi-statement.

Cos’è una funzione valutata in tabella in SQL Server

Una funzione valutata in tabella è una funzione definita dall’utente che ritorna dati di tipo tabella. Il tipo di ritorno di una funzione table-valued è una tabella, quindi potete usare la funzione table-valued proprio come usereste una tabella.

Creazione di una funzione table-valued

L’esempio di dichiarazione seguente crea una funzione table-valued che restituisce una lista di prodotti che include il nome del prodotto, l’anno del modello e il prezzo di listino per uno specifico anno del modello:

CREATE FUNCTION udfProductInYear ( @model_year INT)RETURNS TABLEASRETURN SELECT product_name, model_year, list_price FROM production.products WHERE model_year = @model_year;
Code language: SQL (Structured Query Language) (sql)

La sintassi è simile a quella che crea una funzione definita dall’utente.

Il RETURNS TABLE specifica che la funzione restituirà una tabella. Come potete vedere, non c’è nessuna dichiarazione BEGIN...END. La dichiarazione interroga semplicemente i dati dalla tabella production.products.

La funzione udfProductInYear accetta un parametro chiamato @model_year di tipo INT. Restituisce i prodotti il cui anno di modello è uguale al parametro @model_year.

Una volta creata la funzione a valore tabellare, la si può trovare sotto Programmabilità > Funzioni > Funzioni a valore tabellare come mostrato nell’immagine seguente:

esempio di funzione valorizzata da tabella di SQL Server

La funzione di cui sopra restituisce l’insieme dei risultati di una singola SELECT dichiarazione, quindi, è anche conosciuta come una funzione valorizzata da tabella in linea.

Esecuzione di una funzione con valore in tabella

Per eseguire una funzione con valore in tabella, la si usa nella clausola FROM dell’istruzione SELECT:

SELECT * FROM udfProductInYear(2017);
Code language: SQL (Structured Query Language) (sql)
Esecuzione della funzione valutata da tabella del server SQL

In questo esempio, abbiamo selezionato i prodotti il cui anno di modello è 2017.

Potete anche specificare quali colonne devono essere restituite dalla funzione tabella-valori come segue:

SELECT product_name, list_priceFROM udfProductInYear(2018);
Code language: SQL (Structured Query Language) (sql)

Ecco l’output parziale:

Funzione valorizzata da tabella del server SQL - Selezione delle colonne

Modificare una funzione valorizzata da tabella

Per modificare una funzione valorizzata da tabella, si usa il ALTER invece della parola chiave CREATE. Il resto dello script è lo stesso.

Per esempio, l’istruzione seguente modifica la udfProductInYear cambiando il parametro esistente e aggiungendo un altro parametro:

ALTER FUNCTION udfProductInYear ( @start_year INT, @end_year INT)RETURNS TABLEASRETURN SELECT product_name, model_year, list_price FROM production.products WHERE model_year BETWEEN @start_year AND @end_year
Code language: SQL (Structured Query Language) (sql)

La funzione udfProductInYear ora restituisce i prodotti il cui anno modello è compreso tra un anno iniziale e un anno finale.

La seguente dichiarazione chiama la funzione udfProductInYear per ottenere i prodotti il cui anno di modello è compreso tra 2017 e 2018:

SELECT product_name, model_year, list_priceFROM udfProductInYear(2017,2018)ORDER BY product_name;
Code language: SQL (Structured Query Language) (sql)

Ecco l’output parziale:

SQL Server Table-valued Function Modifying

Multi-statement table-valued functions (MSTVF)

Una multi-statement table-valued function o MSTVF è una funzione table-valued che restituisce il risultato di più dichiarazioni.

La funzione multi-statement-table-valued è molto utile perché è possibile eseguire più query all’interno della funzione e aggregare i risultati nella tabella restituita.

Per definire una funzione multi-statement table-valued, si usa una variabile di tabella come valore di ritorno. All’interno della funzione, si eseguono una o più query e si inseriscono dati in questa variabile di tabella.

La seguente funzione udfContacts() combina personale e clienti in una singola lista di contatti:

CREATE FUNCTION udfContacts() RETURNS @contacts TABLE ( first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(255), phone VARCHAR(25), contact_type VARCHAR(20) )ASBEGIN INSERT INTO @contacts SELECT first_name, last_name, email, phone, 'Staff' FROM sales.staffs; INSERT INTO @contacts SELECT first_name, last_name, email, phone, 'Customer' FROM sales.customers; RETURN;END;
Code language: SQL (Structured Query Language) (sql)

La seguente dichiarazione illustra come eseguire una funzione multi-statement table-valued udfContacts:

SELECT * FROM udfContacts();
Code language: SQL (Structured Query Language) (sql)

Output:

Quando usare le funzioni valutate in tabella

In genere si usano le funzioni valutate in tabella come viste parametrizzate. Rispetto alle stored procedure, le funzioni valutate in tabella sono più flessibili perché possiamo usarle ovunque si usino le tabelle.

In questo tutorial, avete imparato a conoscere le funzioni valutate in tabella di SQL Server, comprese le funzioni valutate in linea e le funzioni valutate in tabella multi-statement.

Navigazione articoli

Brian Quinn non è sposato! Non è una fidanzata o una moglie perfetta che sta aspettando
Condizionatori Comfortmaker

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli recenti

  • Firebush (Italiano)
  • Previsione dei tassi CD per il 2021: I tassi rimarranno probabilmente bassi, ma potrebbero aumentare nel corso dell’anno
  • Come strutturare la documentazione del sistema di gestione della qualità
  • Dolore pelvico cronico e prostatite: sintomi, diagnosi e trattamento
  • Mixed Berry Crisp (Italiano)
  • Ricetta budino al cioccolato basso -carb
  • Giochi e attività salutari per i bambini | UIC Online Informatics
  • Wheat Ales (American) (Italiano)
  • I benefici dell’allattamento al seno dopo un anno
  • È sicuro buttare i fondi di caffè nel lavandino | Atomic Plumbing

Meta

  • Accedi
  • Feed dei contenuti
  • Feed dei commenti
  • WordPress.org

Archivi

  • Marzo 2021
  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com