Ica*_*roo 0 t-sql sql-server stored-procedures
我有一个带有 SELECT 语句和两个参数的存储过程。我想从另一个声明了变量的存储过程调用此存储过程,并使用该变量作为参数之一。
当我尝试这个时:
EXEC [dbo].[Testo] @cd_order = 23, @cd_substep = 33
Run Code Online (Sandbox Code Playgroud)
它返回一些行作为结果,但是当我尝试这样做时:
set @temp_var1 = ( Select cd_substep FROM ....Where...)
EXEC [dbo].[Testo] @cd_order = 23, @cd_substep = @temp_var1
Run Code Online (Sandbox Code Playgroud)
结果是空的。
该过程将填充一个表变量:
INSERT INTO @Var1Table EXEC [dbo].[Testo] 23, @cd_substep
Run Code Online (Sandbox Code Playgroud)
仅当我使用静态值时它才有效。如何使用变量作为参数?
这在您的代码中不是问题,因为我可以简单地复制您所拥有的内容并且它可以工作:
DECLARE @return_value int
DECLARE @temp_var1 int
SET @temp_var1 = (SELECT 65)
EXEC @return_value = [dbo].[GetRecordLog]
@Action = N'All',
@EntityID = 1,
@RecordID = @temp_var1
SELECT 'Return Value' = @return_value
Run Code Online (Sandbox Code Playgroud)
请注意,我的@temp_var1
值为 65。然后我得到与此匹配的行,我知道代码与您的代码不完全相同,但概念保持不变。问题不在于您的代码,而在于其所@temp_var1
具有的价值。
归档时间: |
|
查看次数: |
5947 次 |
最近记录: |