Docs / When to Use TVP vs Bulk

When to Use TVP vs Bulk

The simple rule#

Use a Table Valued Parameter TVP when rows are part of a stored procedure call.

Use bulk insert when rows need to be copied directly into a table efficiently.

TVP example shape#

</> C#
var parameters = new MooParams()
    .AddTableValuedParameter("@Items", table, "dbo.udt_Items");

await db.ExecuteAsync("dbo.usp_Item_Import", parameters);

Bulk example shape#

</> C#
await db.Bulk.WriteToTableAsync("dbo.tbl_Item_Stage", rows);

Why the distinction matters#

A TVP is still part of a normal command execution contract.

Bulk insert is a table-loading operation with a different performance profile and different intent.