SQL CLR - 表变量或临时表与集合

时间:2011-11-04 15:51:29

标签: .net tsql clr sqlclr

我正在从SQL服务器构建数据集 - 一个返回数据集的存储过程。它需要多次传递来操纵数据我需要它。我之前在T-SQL存储过程中做过这个,但它变得太复杂了,所以我转向SQL CLR。在T-SQL中,我有几个表变量

declare @theData as ( col1 int, .... )

我结束了一个加入这些表的select语句。在SQL CLR中,我可以改为拥有一个对象列表:

List<MyObject> theData = new List<MyObject>();

问题:使用表变量或.NET对象集合会更好吗?

我可以看到你没有使用表变量在IN MEMORY中构建内容,而是在SQL服务器上完成工作。从语法上讲,这对我来说无关紧要,因为我可以使用Linq或SQL进行“批量更新”语句。

1 个答案:

答案 0 :(得分:2)

如果您可以使用表变量,CTE等来返回您需要的数据,我会坚持这一点。如果您需要使用托管代码功能(想想对象功能),那么使用CLR非常有用,但如果您不需要使用它,则可能会过度使用。您可以查看此概述:http://msdn.microsoft.com/en-us/library/ms131045.aspx