Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 Server_Variables_Stored Procedures_Cursor - Fatal编程技术网

Sql server 在SQL存储过程中本地存储结果列表

Sql server 在SQL存储过程中本地存储结果列表,sql-server,variables,stored-procedures,cursor,Sql Server,Variables,Stored Procedures,Cursor,在存储过程中,我必须将迭代计算的结果本地存储在表中的每一项中。 结果应该在下一次迭代中使用。 在过程运行结束时,应返回一个带有item | value字段的表。 我有3个主要要求: 在程序启动时处理“结晶”数据:使用静态光标解决 让过程由不同的用户并发调用而不发生冲突:使用本地游标解析 在迭代之间本地存储结果表 对于最后一个要求,我希望创建一个具有随机名称的临时表: set @tempTable = 'temp_table'+cast(rand()*1000 as varchar(10)) 但

在存储过程中,我必须将迭代计算的结果本地存储在表中的每一项中。 结果应该在下一次迭代中使用。 在过程运行结束时,应返回一个带有item | value字段的表。 我有3个主要要求:

  • 在程序启动时处理“结晶”数据:使用静态光标解决
  • 让过程由不同的用户并发调用而不发生冲突:使用本地游标解析
  • 在迭代之间本地存储结果表
  • 对于最后一个要求,我希望创建一个具有随机名称的临时表:

    set @tempTable = 'temp_table'+cast(rand()*1000 as varchar(10))
    
    但是强烈反对这种做法,因为本地静态游标是不可更新的,所以使用什么呢?
    迭代调用同一个过程会变得复杂,因为我必须保持初始源数据静态,而不管在微积分过程中可能发生的数据库内容修改。

    看看,我想这就是你所追求的。它们都在内存中,并在不同的连接之间隔离。

    所以表变量(以及因此而来的变量)对于声明它们的过程来说是固有的局部变量吗?我应该指定一些局部属性吗?一个表变量在批处理结束后立即超出范围——就像正则变量一样,所以它们是局部的。哇!这就是解决办法。Thnx!