如何生成&使用SSIS重命名文档时的前缀标识列(来自现有表)

时间:2016-08-28 18:07:21

标签: sql-server ssis

我正在重命名多个pdf文档。重命名过程的一部分是重命名的任何新文档都必须从现有SQL表中的最后一个标识值开始。例如,最后一个标识值是3425,文档名称是MyDocument,因此我希望重命名的文档看起来像:3426_MyDocument.pdf。有谁知道如何在SSIS中实现这一点?我可以使用文件系统任务重命名文档,但我不确定如何创建一个从表中的最后一个标识值开始的变量。 我正在考虑使用一个验证最后一个身份值的proc并添加1,我不确定它是否会起作用: SELECT IDENT_CURRENT('table')+ ROW_NUMBER()OVER(ORDER BY(SELECT 1))

当前表的样本:

ID     FILENAME 
332442 332442_Statement.pdf 

我已经拥有一个遍历文件夹/子文件夹并将文件复制到网络的软件包。 2)我有一个Execute SQL,它插入到一个包含标识值和文件夹名称的临时表中。临时表和实际表的标识值将具有相同的最后标识值。我有一个Foreach循环容器,在其中我有一个文件系统任务来重命名文档。我不知道如何创建一个变量来从临时表中分配标识值,以便在重命名文档时可以为它添加前缀

2 个答案:

答案 0 :(得分:0)

  

我不确定如何创建一个可以启动的变量   来自表格中的最后一个身份值。

创建一个包变量并用EXECUTE SQL任务填充它,该任务选择Identity列的MAX()+ 1。

答案 1 :(得分:0)

请参考以下查询以创建前缀身份列

CREATE table SerilaPrefix(
id int identity(1,1) ,
Prefix_id as cast('Prefix_'+ RIGHT('0000'+cast(id AS varchar),4) as varchar),
Name varchar(max));

INSERT INTO SerilaPrefix(Name ) VALUES ('Test String');