SQL Server处理表中的每一行 - Cursor或While循环

时间:2014-04-18 09:56:20

标签: sql sql-server tsql

我使用xp_dirtree.

将目录中的所有文件名转储到临时表中
CREATE TABLE #TempTable (Subdirectory VARCHAR(512), Depth INT, xFile INT);

INSERT INTO #TempTable (Subdirectory, Depth, xFile)
   EXEC xp_dirtree 'D:\log\Day_20140301',0,1

SELECT Subdirectory AS Filename 
FROM #TempTable 
WHERE subdirectory LIKE '%.log';

SELECT * FROM #TempTable

我使用此表中的每个文件名进行批量插入。

光标是好还是while循环?

目前使用while循环遍历每条记录。

听到很多关于游标的负面消息。对所有建议都持开放态度。

1 个答案:

答案 0 :(得分:0)

在这种情况下,"无论"可能是正确的答案。虽然光标超过1k记录,但与批量插入使用的IO延迟和CPU相比,几乎没有任何成本。我想,优化加载的文件结构和相应的表应该起带头作用。