【问题标题】:Calling one stored procedure within another stored procedure using variables from first stored procedure使用第一个存储过程中的变量在另一个存储过程中调用一个存储过程
【发布时间】:2012-10-11 07:59:27
【问题描述】:

我有一个存储过程说@Create_Dummy1,它正在传递一个变量。这在此存储过程中被声明为@Dummy_Variable1

接下来我需要从@Create_Dummy1 调用另一个存储过程@Create_Dummy2。我需要在exec 语句中传递@Dummy_Variable1

但如果我尝试这样做,则字符串 @Dummy_Variable1 只会被传递,而不是它所持有的值。

【问题讨论】:

  • 你的 exec 语句是什么样的?您是否使用sp_execute 并传递exec @Create_Dummy2 @Dummy_Variable1
  • @Shruti 不要告诉我们,给我们看。粘贴您的确切代码。
  • @Shruti - 人们在这里编辑问题,试图让它们更具可读性,遵循约定等。为什么回滚?

标签: sql sql-server sql-server-2005 stored-procedures


【解决方案1】:

我正在像这样的其他过程中执行过程:

DECLARE @childResult int, @loaErrorCode int, @loaErrorMessage varchar(255) 
EXEC @childResult = [dbo].[proc_sub_getSomething] @schemes_id = @foo_schemes_i, @errorCode = @loaErrorCode OUTPUT , @errorMessage = @loaErrorMessage OUTPUT

如果它仍然不起作用,您应该编辑您的问题以显示您的确切代码。

【讨论】:

  • dbo.Stored_procedure_name 工作。
【解决方案2】:

这应该可行:

create procedure Create_Dummy1
(
    @Dummy_Variable1  int
)
as 

exec Create_Dummy2 @Dummy_Variable1

Go

create procedure Create_Dummy2
(
    @Dummy_Variable1  int
)
as 

Select * From yourTable WHERE tableColumn = @Dummy_Variable1

这就是你的称呼:

exec Create_Dummy1 1

希望这会有所帮助。

【讨论】:

  • 这没有成功。这正是我尝试过的。如果值保存在此变量中,它会传递字符串 [@Dummy_Variable1]。但是让我指定存储在这个变量 [@Dummy_Variable1] 中的值是一个字符串
猜你喜欢
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
相关资源
最近更新 更多