SQL Server中的临时表可避免出现游标

时间:2018-07-29 21:52:50

标签: sql-server database-cursor

我已在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

此过程按我的要求工作。它将由软件中的成员使用。

我的问题是,由于该代码将由多个用户同时在线运行,是否有可能在服务器中同时创建多个临时表?

0 个答案:

没有答案