The output Screenshot我有一个脚本,它遍历SQL Server数据库表以确定文件类型,然后重命名网络共享上的文件以添加适当的扩展名。下面给出的脚本:
DECLARE @UNC AS varchar(255), @Filetype AS varchar(255), @CMD AS VARCHAR(255)
declare @HPF_Test as cursor;
SET @HPF_Test = CURSOR FOR
select UNC, Filetype
from HPF_Test;
OPEN @HPF_Test;
Fetch NEXT from @HPF_Test into @UNC, @Filetype;
While @@fetch_status=0
begin
SELECT @CMD = 'REN ' + @UNC + ' '
+ RIGHT(@UNC, CHARINDEX('\', REVERSE(@UNC)) - 1)
+ case when @Filetype = 'TIF' THEN '.TIF' when @Filetype = 'TXT' THEN '.TXT' when @Filetype = 'XML' THEN '.XML' END
FROM HPF_Test
exec master..xp_cmdshell @CMD
Fetch next from @HPF_Test into @UNC, @Filetype
end
close @HPF_Test;
deallocate @HPF_Test;
由于大约需要重命名9200万张图像,因此整个过程需要一段时间才能运行和完成。因此,我有几个问题列出如下:
1)可以添加哪些内容来测试是否所有文件都被复制了?
2)有人建议我们分批运行脚本。我怎样才能将它分成几批?
请在这方面帮助我。我是这方面的新手。
谢谢!
更新
我正在测试此代码的三个文件。所以,当我运行上面的代码时,我得到三个输出,都是NULL。但是,当我尝试在表中捕获结果时,我得到两条记录1)系统找不到指定的文件& 2)NULL
我正在使用下面的脚本添加到原始脚本中以在表格中捕获结果。
CREATE TABLE #TEMP_test3(t nvarchar(255))
insert #TEMP_test3(t)
exec master..xp_cmdshell @CMD
select * from
#TEMP_test3
有谁可以帮助我这方面或者至少告诉我我在这里做错了什么?
感谢!!!