存储过程中表值参数的缺点是什么?

dar*_*eds 5 t-sql sql-server sql-server-2008 table-valued-parameters

我使用过各种版本的MS SQL Server,包括2000,2005,2008,R2,(部分)Denali.对于像存储过程中的Table Valued参数这样的新功能,我从未如此兴奋过.我也在进行C#开发,我正在挖掘TVP,我用它来减少来自我的前端应用程序的数据库调用次数.

现在我真正的问题是使用表值参数的缺点是什么.它实在太好了.

请分享你的想法.另外,我不想太深入使用它,必须改变.

Bri*_*ter 5

表值参数几乎没有实际缺点.

优点

  • 经常使用缓存
  • 非常有效地促进批量插入
  • 减少到服务器的往返

缺点:

  • SQL Server不维护TVP列的统计信息
  • 只读
  • 不能用作"Select Into"或"Ins​​ert Exec"语句的目标
  • 仅适用于Sql Server 2008及更高版本

参考