【发布时间】:2020-04-21 22:32:23
【问题描述】:
我正在尝试使用 foreach 循环容器来获取行值并将它们放入字段中。但由于某种原因,如果不遇到此错误,我无法让它工作:
alter table /databasename/.dbo.cp_hh_foo...”失败并出现以下错误:“'@P1' 附近的语法不正确。
问题似乎出在最后的执行 SQL 语句中。前两个执行 SQL 语句工作正常。我想我在变量/参数映射中犯了一个错误,但我不确定。
我的数据流如下所示:
基本上是这样的:
First Execute SQL Task 创建新表
第二次执行 SQL 任务选择一个具有完整结果集的表进入对象类型变量“AllocItems”
- Foreach 循环容器(配置为 ADO 枚举器)将特定行从“AllocItems”映射到变量“AllocItemsSQL1”。这些字符串应该成为我正在创建的表中的字段名称
- 在 foreach 循环容器中执行 SQL 任务会更改表。 SQL 查询:
alter table MIT_Client_Profitability.dbo.cp_hh_footprint add ? varchar(255)
我尝试过的事情:
- 在最终执行 sql 任务中,在参数周围添加括号:“(?)”而不是“?”
- 在最终执行sql任务中,将参数名称更改为“Param1”
- 在最终执行 sql 任务中,更改参数大小
- 第二次执行sql任务,改变“结果名称”
- 在最终执行 sql 任务中,将查询更改为“declare @SQL varchar(255) set @SQL = 'alter table MIT_Client_Profitability.dbo.cp_hh_footprint add ?varchar(255)' exec(@SQL)”
提前感谢您的任何建议!
【问题讨论】:
-
你不是说MySQL吧?如果不是,请删除标签。
标签: sql sql-server ssis