Table-Valued Parameters
TVPs in action
Sergio Govoni
[email protected]
Speaker
Sergio Govoni
• Dal 1999 mi occupo di progettazione, analisi e
sviluppo di un ERP multi-aziendale client/server
in ambiente Win32
– Team leader
– Product manager
• MCP, MCTS SQL Server
– Lavoro con SQL Server dalla versione 7.0
• Speaker, Editor, Publisher @ UGISS
– www.ugiss.org
– Blog: http://community.ugiss.org/blogs/sgovoni
UGISS - User Group Italiano SQL Server
Agenda
• Table-Valued Parameters
– Benefit
– Definizione
– Utilizzo
• Scenario: Tabella inventario passata alla stored procedure di
aggiornamento giacenze
UGISS - User Group Italiano SQL Server
Table-Valued Parameters
• Possibilità di passare tabelle come parametri di
SP o UDF
– TVPs sono fortemente tipizzati, e generalmente più
efficienti dei parametri di tipo XML o Comma
Separated Strings
– Implementazione per tutte le librerie client
• ADO.Net, SNAC, SOAP, ecc…
• Passaggio dei parametri
– Dal client al server: by value
– All’interno del server: by ref
UGISS - User Group Italiano SQL Server
TVPs Benefit
• Migliora la qualità del codice T-SQL e della
programmazione
– Meno codice, meno complesso
• Potenzialmente spedizioni di dati illimitati
• Migliorano le performance
– Ottimizzazione delle chiamate a SP o UDF
– Minor numero di round-trip!! 
– TDS (tabular data stream) ottimizzato per trattare
grandi quantità di dati o TVPs
UGISS - User Group Italiano SQL Server
TVPs Definizione
• Creazione User-defined Table Type
– Comando CREATE TYPE…
– Può utilizzare indici e constraint
– Nuova DMV: sys.table_types
• Table-Valued Parameter
– Variabile di tipo UDT Table
– Parametro di input per SP o UDF
– Keyword obbligatoria READONLY
UGISS - User Group Italiano SQL Server
TVPs Utilizzo
• Scenario: Inventario prodotti
– Tabella inventario passata, come parametro, alla
stored procedure di aggiornamento giacenze:
create procedure
dbo.usp_merge_inventory
(
@Par_Inventory as
[dbo].[UDT_TabInventory] READONLY
)
UGISS - User Group Italiano SQL Server
Inventory table as parameter
TVPs
UGISS - User Group Italiano SQL Server
Table-Valued Parameters
Risorse Generiche
•
Table-Valued Parameters in action
–
•
Informazioni sul prodotto SQL Server
–
–
•
http://www.ugiss.org
http://community.ugiss.org
Newsgroups pubblici via WEB
–
–
•
http://msdn.microsoft.com/sql
Comunità SQL Server
–
–
•
http://www.microsoft.com/italy/sql
http://www.microsoft.com/sql
Supporto sviluppo e professionisti IT
–
•
http://www.ugiss.org/Content/Article/Table-Valued-Parameters-in-Action.aspx
http://www.microsoft.com/italy/communities/newsgroups/default.mspx
http://www.microsoft.com/technet/community/newsgroups/server/sql.mspx
Formazione e mentoring
–
–
http://www.microsoft.com/italy/traincert
http://www.solidqualitylearning.com/
UGISS - User Group Italiano SQL Server
Table-Valued Parameters
Grazie!
Scarica

sys.table_types