By: Matt Batalon, MCITP
Another form of temporary storage that can be queried or joined against, much like a table variable, temp table or CTE Based on user defined table type that describes schema for a table Commonly referred to as Table Valued Parameters (TVP) or User Defined Table Types
Can be passed as a single parameter (set of rows) to a stored procedure or user defined function unlike a table variable or temp table Can be passed between stored procedures or from client side application Reusability; the schema for a TVP is centrally maintained
TVP types are displayed in SQL Server Management Studio unless manually dropped Programmability Types User Defined Table Types Can expand to see columns, constraints, indexes
Ease of encapsulating multiple parameters into a single parameter Reduces round trips to the server, which can aid in performance Strongly typed with the CREATE TYPE…TABLE statement Easily maintainable code because schema can be defined only once then can be reused
Forced to send multiple parameters as arguments Use String Manipulation to encapsulate multiple parameters Individual Database calls, not a set based approach
Using a TVP vs. Delimited String Bulk inserting a TVP Bulk Update using a TVP Encapsulate business logic using TVPs, and reducing round trips to server
Data cannot be modified, must be passed as READ ONLY Cannot use ALTER table statement on a TVP, must be dropped and recreated No support for Select INTO or INSERT Exec statement
Books online ◦ Examples for using with ADO.net ◦ Comparison with BCP ◦ Connectivity Books : Programming SQL Server 2008 by Leonard Lobel, Andrew Bust, Stephen Forte