2010-06-01 47 views
0

几年前,我遇到了这个问题,并希望有一个解决方案,我只是不知道它。我在SSIS包的控制流中使用'执行SQL任务'来检索'bigint'ID值。该任务应该把它放在一个Int64 SSIS变量中,但是我得到错误:“被分配给变量”User :: AuditID“的值的类型与当前变量类型不同。变量在执行期间可能不会改变类型。类型是严格的,除了Object类型的变量。“如何从数据库中检索bigint并将其放入SSIS中的Int64中

几年前,当我将这件事带给MS的时候,他们表示我必须通过将bigint放入SSIS对象变量中,然后根据需要将值转换为Int64来解决此问题。有谁知道这是否已经修复,还是我还需要'解决'这个混乱?


编辑:

服务器统计

  • 产品: Microsoft SQL Server企业版
  • 操作系统:的Microsoft Windows NT 5.2(3790)
  • 平台: NT INTEL X86
  • 版本: 9.00.1399.06

回答

0

我只是能够在BIGINT拉进一个Int64不使用的ExecuteSQL任务的问题。如果你的结果集是单行的,确保你在ExecuteSQL任务中设置它。如果你的结果集是多行,那么你需要为结果集使用一个对象类型变量,然后你可以在你的循环结构中设置变量。我不认为这是一种“解决方法”,因为一组BIGINT值不同于BIGINT。

我在SQL 2008上,但是无论源数据如何,SSIS都应该处理(大部分)相同的事情。

相关问题