SQL Server - 有选择地将字段插入临时表

时间:2009-03-10 14:48:50

标签: sql sql-server

我在SP中执行SP。 SP返回说10个参数。我只对它们中的5个感兴趣。如何仅将这5个插入临时表。

到目前为止我的代码:

  DECLARE @tmpUnion TABLE
  (
    UnionCode VARCHAR(10),
    UnionDate DATETIME,
    UnionPosition VARCHAR(30),
    UnionInitFees BIT,
    UnionDues BIT
  )

  --getDetails returns 10 params. I need only these 5
  INSERT INTO @tmpUnion
  (UnionCode, UnionDate, UnionPosition, UnionInitFees, UnionDues)
  EXEC getDetails
        @iUserId = @OriginalLoginId

3 个答案:

答案 0 :(得分:2)

将getDetails的结果放入包含所有返回值的tablevar中,然后从附加表中插入。

您还可以check out this site获取有关如何在存储过程之间共享数据的更多信息。

答案 1 :(得分:2)

像这样使用OPENROWSET:

Select 
       *
from OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
      Integrated Security=SSPI','Execute yourdb..get_orders')

现在您可以轻松过滤结果集

Select 
employeeid,orderid,orderdate 
from 

OPENROWSET('SQLOLEDB','Data Source=Server_name;Trusted_Connection=yes;
       Integrated Security=SSPI','Execute yourdb..get_orders')

where
       orderdate>='19960101' and orderdate<'19970101'

您不需要创建临时表,也不需要担心过程的结构。

Found here

编辑:最终解决方案在讨论后从评论中移除。

答案 2 :(得分:-1)

你做不到。表变量必须与返回的结构完全匹配。