Sql server 在SQL存储过程中本地存储结果列表
在存储过程中,我必须将迭代计算的结果本地存储在表中的每一项中。 结果应该在下一次迭代中使用。 在过程运行结束时,应返回一个带有item | value字段的表。 我有3个主要要求: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)) 但
set @tempTable = 'temp_table'+cast(rand()*1000 as varchar(10))
但是强烈反对这种做法,因为本地静态游标是不可更新的,所以使用什么呢?
迭代调用同一个过程会变得复杂,因为我必须保持初始源数据静态,而不管在微积分过程中可能发生的数据库内容修改。看看,我想这就是你所追求的。它们都在内存中,并在不同的连接之间隔离。所以表变量(以及因此而来的变量)对于声明它们的过程来说是固有的局部变量吗?我应该指定一些局部属性吗?一个表变量在批处理结束后立即超出范围——就像正则变量一样,所以它们是局部的。哇!这就是解决办法。Thnx!