【问题标题】:Return a table variable from CLR stored procedure call从 CLR 存储过程调用返回表变量
【发布时间】:2013-04-05 06:11:23
【问题描述】:

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

insert into EXISTINGtable 
select * from TableReturnedFromCLRspCAll

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

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

谢谢!

【问题讨论】:

    标签: c# clr sql-server-2012 sqlclr clrstoredprocedure


    【解决方案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-06-21
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多