我已在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
此过程按我的要求工作。它将由软件中的成员使用。
我的问题是,由于该代码将由多个用户同时在线运行,是否有可能在服务器中同时创建多个临时表?