Sql server 如何在sql server的过程中调用过程

Sql server 如何在sql server的过程中调用过程,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个过程名Randomoutlet,我想通过其他过程调用该过程,如下代码所示 ALTER procedure [dbo].[MainSchedule] as begin DECLARE @sup table (supervisorId int) INSERT INTO @sup SELECT DISTINCT SupervisorId FROM CallPlan .dbo .CallPlanSchedule WHERE MONTH (scheduledate)= MONTH (GET

我有一个过程名Randomoutlet,我想通过其他过程调用该过程,如下代码所示

ALTER procedure [dbo].[MainSchedule] 
as
begin
DECLARE @sup table (supervisorId int)

INSERT INTO @sup SELECT DISTINCT SupervisorId  FROM CallPlan .dbo .CallPlanSchedule  WHERE MONTH (scheduledate)= MONTH (GETDATE ()) and YEAR (ScheduleDate )= YEAR(GETDATE())

DECLARE CUR CURSOR FORWARD_ONLY FOR SELECT * FROM @sup
DECLARE @suptem int 
OPEN CUR
FETCH NEXT FROM CUR INTO @suptem

WHILE @@FETCH_STATUS =0
BEGIN       
    EXEC [dbo].[randomOutlet] @suptem
    FETCH NEXT FROM CUR INTO @suptem        
END
CLOSE CUR
DEALLOCATE CUR      
end
保存MainSchedule时,会显示消息“模块“MainSchedule”依赖于缺少的对象“dbo.randomOutlet”。该模块仍将被创建;但是,在该对象存在之前,它无法成功运行。 "

当我运行这个程序时,它会出现错误“Msg 2812,16级,状态62,程序MainSchedule,第15行 找不到存储过程“dbo.randomOutlet”。“


请帮助我解决此问题,提前感谢

我尝试了以下方法,并且一切正常

CREATE procedure CALL_PROC --'abc'
@var varchar(100)
as
begin
declare @sup table (item int)
insert into @sup select 1 union select 2

DECLARE CUR CURSOR FORWARD_ONLY FOR SELECT * FROM @sup
DECLARE @var1 int 
OPEN CUR
FETCH NEXT FROM CUR INTO @var1

WHILE @@FETCH_STATUS =0
BEGIN       
    EXEC dbo.call_me @var1
    FETCH NEXT FROM CUR INTO @var1        
END
CLOSE CUR
DEALLOCATE CUR 
end
go

CREATE PROCEDURE [dbo].[CALL_ME]
@VAR VARCHAR(100)
AS
if OBJECT_ID('tempdb..#temp') is not null
begin
insert into #temp select @VAR
end
else
select @var value into #temp
select * from #temp
go

请检查是否已在同一数据库上创建了对象。

此过程[dbo].[randomOutlet]返回什么??它是返回一个整数还是一个表??如果只使用整型更好,则functionit不返回任何值。只是在该过程中有insert语句。您的错误意味着过程dbo.randomOutlet与MainSchedule不在同一服务器和数据库上。我知道你认为是的。但事实并非如此。这两个过程在同一个数据库上。但是当我运行它时,它仍然是错误的。在运行我的答案中的代码后,您是否会出错?我没有运行您的代码,因为它具有不同的业务逻辑。我在内部程序中做了很多事情。