我有一个带有数据流的SSIS包,可以从一个数据库复制到另一个数据库。
最初它是从SQL2012到SQL2012的副本。这没问题。现在我需要更改需求并需要从SQL2008 R2复制到SQL2012。该查询现在生成此错误:
Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.
导致它的查询包含我在OLEDB源中分配的参数(类型整数):
SELECT MetricValues.MetricValue_RunId, MetricValues.MetricValue_SampleNumber, MetricValues.MetricValue_MetricId, MetricValues.MetricValue_Value
FROM MetricValues
INNER JOIN Runs ON MetricValues.MetricValue_RunId = Runs.Run_id
INNER JOIN STR_RequiredMetricList ON MetricValues.MetricValue_MetricId = STR_RequiredMetricList.id
WHERE (Runs.Run_endtime > DATEADD([day], (?*-1), GETDATE()))
它只是获得小于[参数]天的记录。
有什么关于从2008年到2012年的复制,我需要知道可能导致此错误吗?
答案 0 :(得分:0)
不是真正的解决方案,但作为一种解决方法,我创建了字符串包级别变量并使用脚本对象用查询和变量填充它们。然后我在数据源中引用了查询。