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!