我在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
答案 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'
您不需要创建临时表,也不需要担心过程的结构。
编辑:最终解决方案在讨论后从评论中移除。
答案 2 :(得分:-1)
你做不到。表变量必须与返回的结构完全匹配。