sql-server - SQL Server 中的临时表避免游标
问题描述
我在 SQL Server 存储过程中编写了以下代码,以避免代码中出现光标。我使用临时表来存储数据并循环访问数据。
SELECT *
INTO #temp
FROM
(SELECT *
FROM -----------------) AS x
SET @iRwCnt = @@ROWCOUNT
CREATE CLUSTERED INDEX idx_tmp ON #temp(ACID) WITH FILLFACTOR = 100
WHILE @iRwCnt > 0
BEGIN
SELECT TOP 1 @sValue = ACID
FROM #temp
SET @iRwCnt = @@ROWCOUNT
IF @iRwCnt > 0
BEGIN
SELECT
@mregno = regno, @amount = credit,
@remark = remark, @trans_type = transtype
FROM
#temp
WHERE
ACID = (SELECT TOP 1 ACID FROM #temp)
--begin tran
--my function
--commit tran
DELETE FROM #temp
WHERE ACID = @sValue --remove processed record
END
END
DROP TABLE #temp
此过程按我的意愿工作。它将由软件中的成员使用。
我的问题是,由于此代码将由多个用户同时在线运行,是否可以同时在服务器中创建多个临时表?
解决方案
推荐阅读
- mysql - 如何修复:“事件完成后,下一次插入将时间戳设置为 0000-00-00 00:00:00”
- php - 使用 PHP 读取制表符分隔的 csv
- mysql - 从 3 个不同的主题中为一个 id 找到 max(marks),对于第二个 id 类似,依此类推
- angular - Angular 8 延迟加载的路由和守卫
- c# - 如何将参数传递给 ASP.NET Core 布局中的顶部导航栏?
- excel - 如何使用函数填充集合,然后调用集合以填充用户表单中的组合框
- javascript - 向 2d 平台游戏添加重力的问题
- outlook-addin - O365 Outlook 加载项无法加载
- react-native - 如何在导航抽屉上执行注销按钮以将我重定向到登录页面?
- pandas - Dask 的性能比 Pandas 差