存储过程再调存储过程!如何写啊?

yuwen16 2005-08-05 01:04:35
小弟现在一个存储过程A将执行另外一个存储过程B。
现我希望B返回一个#temptable,而A来处理#temptable。这个如何写啊?

我查了下用output 只能是一个变量。象这样的表名如何调?
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MorningTea 2005-08-05
  • 打赏
  • 举报
回复
create table #t(a_nam varchar(10),.....)--建立临时表
create procedure B
as
select * from a
go

create procedure A
as
if object_id('tempdb..#t') is not null
begin
insert into #t
exec B
end
happydreamer 2005-08-05
  • 打赏
  • 举报
回复
把过程B改为function

CREATE FUNCTION B()
RETURNS @a TABLE
(
表结构定义
)

AS
BEGIN
--处理过程,比如
INSERT @a SELECT * FROM table2
RETURN
END
go

CREATE PROCEDURE A
AS
SELECT * from A()
GO
JackyBeauty 2005-08-05
  • 打赏
  • 举报
回复
创建全局表了,##temptable,这样在两个存储过程就都可以用了
yuwen16 2005-08-05
  • 打赏
  • 举报
回复
如果该返回的表的字段名是不固定的?如何做??
vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
create procedure A
as
create table #temptable(......)
insert #temptable exec B

..........

go
rivery 2005-08-05
  • 打赏
  • 举报
回复
你在A中创建一个#temptable,可以在B中使用,然后A中再直接对#temptable操作就可以了。
不知是否能满足要求。
mschen 2005-08-05
  • 打赏
  • 举报
回复
首先创建临时表

create table #temptable(字段1 类型1,字段2 类型2.......)

insert #temptable
exec 存储过程B

select * from #temptable
hsj20041004 2005-08-05
  • 打赏
  • 举报
回复
create procedure P_Compute_DayDL
(@nian smallint, @qid smallint output,@fval real output)
-------程序代码
***************************************************************
----调用
create PROCEDURE dbo.P_Compute_DayReport(@year int)
decalre @qq smallint
declare @ff real
exec P_Compute_DayDL @year , @qq output ,@ff output

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧