Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server从动态SQL过程中获取值到表中_Sql_Stored Procedures - Fatal编程技术网

SQL Server从动态SQL过程中获取值到表中

SQL Server从动态SQL过程中获取值到表中,sql,stored-procedures,Sql,Stored Procedures,我在一个sql过程中有一个临时表变量,我使用这样的动态sql更新它 insert into @ResultSetTable exec(@query) 这很好,我需要使用另一个动态sql中的另一个值更新同一存储过程中的表,该值返回一个标量值,但不更新,并且该列始终为0,我检查了单独运行动态sql,它正确返回值,只是没有得到更新 exec sp_executesql @query, N'@finalvalue int out', @finalvalue output update @Result

我在一个sql过程中有一个临时表变量,我使用这样的动态sql更新它

insert into @ResultSetTable exec(@query)
这很好,我需要使用另一个动态sql中的另一个值更新同一存储过程中的表,该值返回一个标量值,但不更新,并且该列始终为0,我检查了单独运行动态sql,它正确返回值,只是没有得到更新

exec sp_executesql @query, N'@finalvalue int out', @finalvalue output

update @ResultSetTable set finalvalue = @finalvalue where 
          [ID]=@ID

有人能帮忙吗

@finalvalue
只能保存一个值,因此您使用无where子句进行的更新会将整个
@resultsetable.finalvalue
列设置为该值。这是期望的行为吗?我想你是对的,我应该包括一个where子句,我最初认为这是在游标循环中调用的,但正如你所说的,从这个动态sql获得的最终值将更新所有以前的行。表中仍然只包含0作为更新的行col@TimLehner如果我将其声明为out,则查询返回一个标量值在这个过程中,它只会将值转换成finalValue,所以我无法理解这一点,所以只为那个标量值添加了一个表,并将存储过程的结果存储到这个表中,随后用此行更新了第一个表:-(我知道它效率不高,但有效)