【问题标题】:Sending a variable as a parameter in second stored proc sql在第二个存储的 proc sql 中将变量作为参数发送
【发布时间】:2015-09-29 08:25:26
【问题描述】:

我想知道这在 SSMS 中是否可行。所以我有一个存储在另一个存储过程中的过程。是否可以将一个存储过程的变量作为参数传递给第二个。我需要将所有这些变量作为一个变量存储在第二个存储过程中。下面的例子。

Create Procedure StoreProc1_sp
@variable1 varchar(4000), 
@variable2 varchar(4000)

Exec StoredProc2 --如何将上述两个变量作为一个参数传递

我知道这可能不符合我的要求,所以我道歉。

谢谢你,

【问题讨论】:

  • 为什么要将 2 个变量作为一个变量传递?
  • 为什么不首先传入 1 呢?如果将它们连接在一起,则单个参数需要为 varchar(max)。
  • 视情况而定。第二个 proc 将如何处理 one 参数中的两个值?
  • 它需要作为一个传递,因为所有这些变量值都将存储在数据库的一列中,用于记录传递的内容。这个内部存储过程将是一个日志存储过程,它将传递有关外部过程的信息。所以这将用于许多不同的过程,因此它可能会根据所使用的外部过程传递不同数量的变量值。

标签: sql sql-server stored-procedures parameter-passing ssms


【解决方案1】:

我不确定你为什么要组合它们,但由于它们是字符串,你可以将它们连接起来,也许可以使用分隔符:

DECLARE @variable3 varchar(max)

SET @variable3 = @variable1 + '|' + @variable2

Exec StoredProc2 @variable3

在 StoredProc2 中,您可以根据 '|' 拆分它们。 这是哈基。

为什么不改变 StoredProc2:

Create Procedure StoreProc2_sp @variable1 varchar(4000), @variable2 varchar(4000)

只需传递 Exec StoredProc2 @variable1, @variable2

?

【讨论】:

  • 我需要它们作为一个变量,因为第二个(内部)proc 会将所有这些参数插入到表的一列中。我没想过将它们存储在另一个变量中并传递该变量。谢谢!!我会试试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
相关资源
最近更新 更多