0

我正在使用 SSIS (Visual Studio 2017) 将许多 .csv 文件加载到 SQL Server 表中。

我正在使用 For Each 循环容器。我有两个用户变量 - FileName (string) 和 RowCnt (int)

我开发了一个审计表 (dbo.FEfiles) 来跟踪每个加载的文件以及每个文件中的记录数。

审计表有两列:

1) 文件名(varchar(20)

2) 行数(int)

在 For Each 循环容器内设置数据流任务后,我有一个连接到我的审计表的执行 SQL 任务。

在这个执行 SQL 任务中,在表达式选项卡中,在 SQLStatementSource 下,我有以下表达式来单独获取文件名:

"插入到 dbo.FEfiles (文件名) SELECT '" + @[用户::文件名] + "'"

当我评估表达式时,这会正确解析,我得到:

插入到 dbo.FEfiles(文件名)选择“文件名.CSV”

现在,如何为具有整数数据类型的 RowCnt 添加变量?

我尝试了许多选项,例如以下选项:

"插入到 dbo.FEfiles (FileName,RowCount) SELECT '" + @[User::Filename] + "', + (DT_WSTR, 12) @[User::RowCnt] "

当我评估表达式时,我得到以下信息:

插入 dbo.FEfiles (FileName,RowCount) SELECT 'filename.CSV', + (DT_WSTR, 12) @[User::RowCnt]

我需要改为: INSERT INTO dbo.FEfiles (FileName,RowCount) SELECT 'filename.CSV', 0

你能帮我找到正确的表达方式吗?

我什至看过这个视频,但无法弄清楚:

https://www.youtube.com/watch?v=Um7tDy9jZRs

在此处输入图像描述

4

1 回答 1

0

试一试。

"INSERT INTO dbo.FEFiles (FileName,RowCount) VALUES ('" + @[User::Filename] + "'," +  (DT_WSTR, 12) @[User::RowCnt] + ")"

每个用户的评论必须将 RowCount 放入括号中作为列名。

"INSERT INTO dbo.FEFiles (FileName,[RowCount]) VALUES ('" + @[User::Filename] + "'," + (DT_WSTR, 12) @[User::RowCnt] + ")"

弦乐部分

"INSERT INTO dbo.FEFiles (FileName,[RowCount]) VALUES ('" 
+ 
@[User::Filename] 
+ 
"'," 
+  
(DT_WSTR, 12) @[User::RowCnt] 
+ 
")"
于 2019-01-03T02:36:53.927 回答