1

我有一个现有的 CLR,它使用 XST 来分解和验证传入的 XML。我想将数据点(不关心 XML 本身)捕获到可以直接插入到数据库表中的表中。所以我会调用我的 CLR 存储过程,它会返回 4 列数百或行,我可以简单地做一个

insert into EXISTINGtable 
select * from TableReturnedFromCLRspCAll

它不一定是 SP,它可以是 UDF……我真正的问题是如何让 CLR 返回一个表。我还需要能够传入表定义。因此,对于 CLR 返回的表......我希望将 4 个列名和类型作为变量作为 CLR 调用的一部分。

如果有人能帮我解决这个问题,我将不胜感激,也给我留下了深刻的印象,因为我问过一些经验丰富的人,当我到达 CLR 的动态表和/或 CLR 返回表时,他们都举起了手一点也不。

谢谢!

4

1 回答 1

1

来自 MSDN http://msdn.microsoft.com/en-us/library/ms131094.aspx

返回表格结果

若要将查询结果直接发送到客户端,请使用 SqlPipe 对象上的 Execute 方法的重载之一。这是将结果返回给客户端的最有效方式,因为数据被传输到网络缓冲区而不被复制到托管内存中。

我没有从存储过程中尝试过它,但是我使用以下示例从 CLR UDF 返回了一个表。 http://msdn.microsoft.com/en-us/library/ms131103.aspx

于 2013-04-18T20:10:18.487 回答