SSIS任务中的范围标识错误

时间:2014-05-29 16:00:05

标签: sql-server ssis sql-server-2008-r2 scope sql-server-2012

CREATE TABLE SSIS_AuditResults(
AuditID INT IDENTITY(1,1),
PackageName varchar(35),
ExecutionTime datetime,
Filename_Path varchar(100),
RecordCount integer,
EndTime datetime,
PackageStatus varchar(10)
)

以上是我的表格。我正在使用下面的查询来执行SQL TASK

INSERT INTO SSIS_AuditResults(PackageName,ExecutionTime)
SELECT ? ,?
select scope_identity()

在参数中我映射包名和执行时间。 在结果映射中,我正在创建一个名为

的新变量
Identity_Generator 
data type int 64,value 0

执行我的包后,我收到以下错误

  

[执行SQL任务]错误:为变量“Identity_Generator”赋值时发生错误:“分配给变量”User :: Identity_Generator“的值的类型与当前变量类型不同。变量可能不会更改在执行期间输入。变量类型是严格的,除了Object类型的变量。

我正在给INT,但它给我一个错误。有人可以在我犯错的地方帮助我吗?

1 个答案:

答案 0 :(得分:1)

SSIS中的数据类型不允许更改,除非它是Object类型。您的表将AuditID定义为int。 SQL Server int数据类型与SSIS中的Int32数据类型相关联。

您的软件包将Identity_Generator SSIS变量定义为Int64类型,类似于SQL Server数据类型中的bigint。

要解决此问题,您需要使类型对齐:将SQL Server类型更改为bigint或将Variable更改为Int32。正确的方法取决于您的环境的具体情况。