我有一个现有的CLR,它使用XST来粉碎和验证传入的XML。我想将数据点(不关心XML本身)捕获到可以直接插入数据库表的表中。所以我会调用我的CLR存储过程,它将返回4列数百或行,我可以简单地做一个
insert into EXISTINGtable
select * from TableReturnedFromCLRspCAll
它不一定是SP它可能是一个UDF ...我真正的问题是如何让CLR返回一个表。我也需要能够传递表定义。因此,对于CLR返回的表...我希望将4列名称和类型作为对CLR的调用的一部分作为变量。
如果有人可以帮助我,我会非常感激和印象非常深刻,因为我已经问过一些非常有经验的家伙,当我到达CLR有动态表和/或CLR时他们都会举手完全归还一张桌子。
谢谢!
答案 0 :(得分:1)
来自MSDN http://msdn.microsoft.com/en-us/library/ms131094.aspx
返回表格结果
要将查询结果直接发送到客户端,请使用其中一个 SqlPipe对象上的Execute方法的重载。这是 将结果返回给客户端的最有效方法,因为数据是 转移到网络缓冲区而不复制到托管 存储器中。
我没有从存储过程中尝试过,但我使用以下示例从CLR UDF返回了一个表。 http://msdn.microsoft.com/en-us/library/ms131103.aspx