Sql xp_dirtree,在文件计数上有一个while循环
我正在尝试编写一个存储过程,该存储过程在自身中循环,直到满足设置的文件计数,然后继续。然而,自从我创建了一个带有结果的临时表之后,我就无法将其放入while循环的游标中 下面是获取文件的查询Sql xp_dirtree,在文件计数上有一个while循环,sql,sql-server,tsql,sql-server-2016,Sql,Sql Server,Tsql,Sql Server 2016,我正在尝试编写一个存储过程,该存储过程在自身中循环,直到满足设置的文件计数,然后继续。然而,自从我创建了一个带有结果的临时表之后,我就无法将其放入while循环的游标中 下面是获取文件的查询 DROP TABLE IF EXISTS #1 CREATE TABLE #1 ( id int IDENTITY(1,1) ,subdirectory nvarchar(512) ,depth int ,isfile bit); INSERT #1
DROP TABLE IF EXISTS #1
CREATE TABLE #1 (
id int IDENTITY(1,1)
,subdirectory nvarchar(512)
,depth int
,isfile bit);
INSERT #1
EXEC xp_dirtree '\\ServerName\File_BackUp\CSV\', 10, 1
SELECT COUNT(ID) FROM #1;
是否可以将其包装,使其保持循环,直到计数达到10?一段时间在这里应该可以正常工作。尝试:
WHILE (SELECT COUNT(ID) FROM #1 < 10)
BEGIN
INSERT #1
EXEC xp_dirtree '\\ServerName\File_BackUp\CSV\', 10, 1
WAITFOR DELAY '00:00:05' -- Wait five seconds between checks
-- so you don't flog your machine badly.
END
在这里呆一段时间就可以了。尝试:
WHILE (SELECT COUNT(ID) FROM #1 < 10)
BEGIN
INSERT #1
EXEC xp_dirtree '\\ServerName\File_BackUp\CSV\', 10, 1
WAITFOR DELAY '00:00:05' -- Wait five seconds between checks
-- so you don't flog your machine badly.
END
您的问题看起来像是某种集成场景检查传入文件的目录 如果您的案例严重依赖于移动文件、转换、加载等 我建议为此使用适当的工具,如SQLServer集成服务 您可以轻松构建FileWatcher任务: 或使用第三方: “文件观察者”任务实际上是在观察等待文件的文件夹。找到可用文件后,任务完成,返回文件名,以便在包中继续使用
您的问题看起来像是某种集成场景检查传入文件的目录 如果您的案例严重依赖于移动文件、转换、加载等 我建议为此使用适当的工具,如SQLServer集成服务 您可以轻松构建FileWatcher任务: 或使用第三方: “文件观察者”任务实际上是在观察等待文件的文件夹。找到可用文件后,任务完成,返回文件名,以便在包中继续使用